摘要: 写在前面近几天花了一些时间了解了一下Objective-C runtime相关的东西,其中涉及到了+load方法,譬如method swizzling通常在category的+load方法中完成。之前对initializer和load的使用就比较疑惑,但一直没有详细去对比了解,以此为契机,集各方资源... 阅读全文
posted @ 2015-06-18 16:14 脸大皮厚歌 阅读(238) 评论(0) 推荐(0) 编辑
摘要: super在Objective-C中,如果我们需要在类的方法中调用父类的方法时,通常都会用到super,如下所示:@interface MyViewController: UIViewController @end @implementation MyViewController - (void)v... 阅读全文
posted @ 2015-06-18 15:54 脸大皮厚歌 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“... 阅读全文
posted @ 2015-06-18 15:13 脸大皮厚歌 阅读(190) 评论(0) 推荐(0) 编辑
摘要: Objective-C对象收到消息之后,究竟会调用何种方法需要在运行期间才能解析出来。那你也许会问:与给定的选择子名称相应的方法是不是也可以在runtime改变呢?没错,就是这样。若能善用此特性,则可发挥出巨大优势,因为我们既不需要源代码,也不需要通过继承子类来覆写方法就能改变这个类本身的功能。这样... 阅读全文
posted @ 2015-06-18 14:43 脸大皮厚歌 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 消息转发机制概述上一篇博客消息传递机制中讲解了Objective-C中对象的「消息传递机制」。本文需要讲解另外一个重要问题:当对象受到无法处理的消息之后会发生什么情况?显然,若想令类能理解某条消息,我们必须以程序代码实现出对应的方法才行。但是,在编译期向类发送了其无法理解解读的消息并不会报错,因为在... 阅读全文
posted @ 2015-06-18 11:31 脸大皮厚歌 阅读(346) 评论(0) 推荐(0) 编辑