Japho Blog

Hang on to your dreams.

AttributeTextParser

Easily build NSAttributedString from XML/HTML like strings.

前言 iOS 开发过程中,经常需要实现一些较为复杂的文本展示,一般需要通过富文本进行处理。iOS 平台下,富文本 API 调用较为繁琐,为了解决这一问题,AttributeTextParser...

iOS PDFKit 开发指北

Guideline of PDFKit on iOS 11

前言 2017年夏天,在苹果全球开发者大会(WWDC)上,苹果公司终于推出了针对于 iOS 的 PDFKit 支持。PDFKit 自从 MacOS 10.4 以来一直在 AppKit for ...

优雅的动画实现方案SVGA、Lottie

减少开发成本,跨平台实现复杂UE动画

前言 在开发APP的过程中,需要在APP中实现设计同学的UE效果动画,一般都是通过代码实现的,当对于较复杂的动画时,例如直播中刷礼物时的动画,这时利用代码实现会比较复杂。而且Android和i...

理解“块”这一概念

《Effective Objective-C 2.0》读书笔记

块的基础知识 块与函数类似,只不过是直接定义在另一个函数里的,和定义它的那个函数共享同一个范围内的东西。用“^”符号表示。简单的块: ^{ //Block implementation he...

以“自动释放池块”降低内存峰值

《Effective Objective-C 2.0》读书笔记

释放对象有两种方式:一种是调用release方法,使其保留计数立即递减;另一种是调用autorelease方法,将其加入到“自动释放池”中。自动释放池用于存放那些需要稍后再某个时刻释放的对象。清...

以弱引用避免保留环

《Effective Objective-C 2.0》读书笔记

对象中经常出现一种情况,就是几个对象都以某种方式互相引用,从而形成了“环”。这种情况通常会造成内存泄漏,因为最后没有别的东西会引用环中的对象。这样的话,环里的对象就无法为外界所访问了,但对象间尚...

编写“异常安全代码”时留意内存管理问题

《Effective Objective-C 2.0》读书笔记

在try块中,如果保留了某个对象,然后在释放之前抛出了异常,那么,除非catch块能够处理此问题,否则对象所占内存将泄露。 虽说默认情况下不开启,但是ARC依然能生成这种安全处理异常所用的附加...

通过协议提供匿名对象

《Effective Objective-C 2.0》读书笔记

协议定义了一系列方法,遵从此协议的对象应该实现他们。于是,我们可以用协议把自己所写的API中的实现细节隐藏起来,将返回对象设计为遵从此协议的纯id类型。这样,想要隐藏的类名就不会出现在API之中...

理解引用计数

《Effective Objective-C 2.0》读书笔记

Objective-C语言使用引用技术来管理内存,也就是说,每个对象都有可以递增或递减的计数器。如果想使某个对象继续存活,就递增其引用计数;用完之后,就递减其引用计数,计数变为0时,表示没有人关...

以ARC简化引用计数

《Effective Objective-C 2.0》读书笔记

使用ARC时,引用计数实际上还是要执行的,只不过保留与释放操作现在是由ARC自动添加的。由于ARC会自动执行retain,release,autorelease等操作,所以直接在ARC下调用这些...