iOS的一些个人总结
来源:互联网 发布:淘宝发货清单软件 编辑:程序博客网 时间:2024/06/05 00:47
iOS个人总结
1. iOS消息转发的实现
消息转发的主要过程如下:
当向一个对象发送一个消息,首先会在这个类及其父类的该死列表中查找该方法的实现,如果不能查找到该方向的实现,则进入动态方法解析的过程,这个过程将会调用resolveInstanceMethod,这个方法将会给类使用objc_addMethod动态添加方法的机会,如果运行时(Runtime)找到对应用SEL的IML实现,则调用,否则将进入下一个阶段,即快速转发阶段,使用
- (id)forwardingTargetForSelector:(SEL)aSelector
流程到了这里,系统给了个将这个SEL转给其他对象的机会。
返回参数是一个对象,如果这个对象非nil、非self的话,系统会将运行的消息转发给这个对象执行。否则,继续查找其他流程。
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
这个函数和后面的forwardInvocation:是最后一个寻找IML的机会。这个函数让重载方有机会抛出一个函数的签名,再由后面的forwardInvocation:去执行。
- (void)forwardInvocation:(NSInvocation *)anInvocation
真正执行从methodSignatureForSelector:返回的NSMethodSignature。在这个函数里可以将NSInvocation多次转发到多个对象中,这也是这种方式灵活的地方。(forwardingTargetForSelector只能以Selector的形式转向一个对象)
2. RunLoop的实现
RunLoop的实现简单来说就是在线程中实现了一个do-while的的死循环,不断接收用户输入,在内部接收及分发相应的事件
function loop() { initialize(); do { var message = get_next_message(); process_message(message); } while (message != quit);}
0 0
- iOS的一些个人总结
- 一些个人的总结
- 关于sql的一些个人总结
- 说说java NIO的一些个人总结
- 关于vim的一些个人总结
- 个人总结的一些链表知识
- 一些个人总结的前端特效
- [个人心得]渗透测试的一些总结
- 个人总结的一些面试技巧
- 关于ReentrantLock的一些个人总结
- java NIO的一些个人总结
- 个人使用VIM的一些总结
- 个人使用JSPatch的一些小小总结
- java NIO的一些个人总结
- 说说java NIO的一些个人总结
- java NIO的一些个人总结
- 一些小程序的个人总结(1)
- 基于iOS关于Block(代码块)的一些认识和总结还有一些例子,仅代表个人看法,
- 剑指offer - 矩形覆盖
- CodeForces 627A XOR Equation
- Android中JNI的使用方法
- SparkMLlib---基于余弦相似度的用户相似计算
- MOngoDB写入图片
- iOS的一些个人总结
- 阿里直播平台的架构演进
- hdu 5793 2016 Multi-University Training Contest 6(快速幂+乘法逆元)
- 比较两个字符串中字符是否相等(变位词-anagram)?
- Android Studio下jni应用
- POJ 2778 DNA Sequence (AC 自动机+矩阵)
- 写给自己的......................
- 剑指offer - 二进制中1的个数
- input Text 对象常用属性