
objective-c
尚书左仆射
我喜欢按照不按套路出牌的套路出牌。
展开
-
objective-c中的消息转发
将消息发送给没有实现该消息方法的对象时,通常会出现运行时错误。这时,我们可以将不能被处理的消息转送给其他对象,让其他对象来处理该消息。首先,将某消息发送到相应的接受者。如果接收者没有实现对应消息的相应方法,运行时系统会发送如下消息给接收者。- (void)forwardInvocation: (NSInvocation *)anInvocation这个方法在NSObject中定义,所有原创 2016-05-13 16:27:48 · 997 阅读 · 0 评论 -
objective-c中category的底层实现
以下是在看完源码后我觉得最能说明问题的部分。首先是category结构体的定义:struct category_t { const char *name; classref_t cls; struct method_list_t *instanceMethods; struct method_list_t *classMethods; struct原创 2016-05-27 22:26:08 · 1577 阅读 · 0 评论 -
objective-c中的self和super关键字
对于这两个关键字,最重要的是搞清楚两点:1.self是调用该方法的实体,是类中方法的隐藏变量(还有一个是_cmd代表被调用方法的selector),在调用时动态决议;2.super是“编译器指示符”,在编译时静态决议。super指的是从当前类的super class开始查找相应的selector,找到后让self来调用。注意:不是用superclass的对象来调用该selector。结原创 2016-05-17 22:03:44 · 1390 阅读 · 0 评论 -
深入理解RunLoop
原文链接:http://blog.ibireme.com/2015/05/18/runloop/RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。Index转载 2016-05-18 12:03:06 · 1523 阅读 · 0 评论 -
objective-c中的消息响应机制
objective-c中的消息响应机制。原创 2016-04-08 19:52:29 · 1010 阅读 · 0 评论 -
KVC/KVO底层实现原理
KVC: Key-value coding is a mechanism for indirectly accessing anobject’s attributes and relationships using string identifiers.所谓键值编码,并不是访问器方法的启动和实例变量的访问这种直接的方式,而是使用表示属性的字符串来间接访问对象属性值的一种结构。只要存在访问器原创 2016-05-27 17:15:57 · 5940 阅读 · 1 评论 -
objective-c中关联引用的底层实现
我们知道关联引用(associative references)可以为已存在的实例对象增加实例变量。该技术主要由以下三个函数实现相应的功能:1. void objc_setAssociatedObject(id object, void *key, id value,objc_AssociationPolicy policy)这个方法用于为对象object添加以key指定的地原创 2016-05-25 15:04:12 · 2411 阅读 · 0 评论