Japho Blog

Hang on to your dreams.

在dealloc方法中只释放引用并解除监听

《Effective Objective-C 2.0》读书笔记

对象经历生命周期后,就会被系统回收,这时就会执行dealloc方法。在每个对象的生命周期内,此方法只执行一次。不应该自己调用dealloc方法,运行期系统会在适当的时候调用他,而且一旦调用dea...

勿在分类中声明属性

《Effective Objective-C 2.0》读书笔记

尽管在技术上说,分类中可以声明属性,但是还是要尽量避免这种做法。因为,分类无法向类中新增实例变量,因此,他们无法把实现属性所需的实例变量合成出来。这时,需要在分类中为该属性实现setter &...

编码习惯问题

《Effective Objective-C 2.0》读书笔记

将类的实现代码分散到便于管理的数个分类中 当类中方法及实现过多的时候,可以考虑用Objective-C的“分类”机制,把代码按逻辑划分到几个分区中。通过分类机制,可以把类代码分成很多个易于管理...

理解Objective-C错误类型

《Effective Objective-C 2.0》读书笔记

ARC下默认情况非“异常安全”,如果抛出异常,本应在作用域末尾释放的对象将不会进行自动释放了。若想生成“异常安全”代码,通过设置编译器的标志来实现,不过将引入一些额外代码,在不抛出异常时,也会照...

通过委托与数据源协议进行对象间的通信

《Effective Objective-C 2.0》读书笔记

Objective-C不支持多继承,因此我们把某个类应该实现的一系列方法定义在协议里面。协议最常见的用途就是委托模式(delegate),“分类”(category),也是Objective-C...

理解NSCopying协议

《Effective Objective-C 2.0》读书笔记

在需要拷贝对象时,要通过copy方法来完成,如果想令自己创建的类支持拷贝操作,那就需要实现NSCopying协议,次协议只有一个方法: - (id)copyWithZone:(NSZone *...

5分钟带你看完 WWDC 2018

WWDC 2018 Keynote 全记录

前言 一年一度的 WWDC(苹果全球开发者大会)于北京时间 6月5日 凌晨1点开幕。废话不多说,来看看这次WWDC 都有哪些亮点吧! iOS 12 和 ARKit 2.0 关键词:官...

判断当前viewcontroller是push还是present的方式显示

妈妈再也不用担心我不会判断了

通过presentviewcontroller的方式显示的viewcontroller不会存入self.navigationController.viewControllers数组中。而通过pu...

如何查找当前的第一响应者

不调用私有API查找第一响应者

有时候总是有需求来获取当前的第一响应者,例如让TextField收键盘,隐藏视图等等操作都需要获取当前的第一响应者,那么该如何获取呢? UIWindow *keyWindow = [[UIAp...

Objective-C 枚举(位移枚举)

枚举真的有这么简单?快!上车!

什么是枚举 在程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑...