iOS开发经验与总结

OC部分原理参考

2016-05-17  本文已影响74人  RunningDu

1.RunLoop

深入理解RunLoop
RunLoop 视频
RunLoop第一讲 视频
RunLoop实战 视频

Paste_Image.png Paste_Image.png

2.Runtime 及 消息转发

Paste_Image.png

Objective-C Runtime
谈Runtime机制和使用的整体化梳理
Objective-C特性:Runtime
理解 Objective-C Runtime
iOS:学习runtime的理解和心得
Runtime 标哥的技术博客

Objective-C 中的消息与消息转发
Objective-C消息转发

消息发送过程:
1. 首先根据receiver对象的isa指针获取它对应的class
2. 优先在class的cache查找message方法,如果找不到,再到methodLists查找
3. 如果没有在class找到,再到super_class查找
4. 一旦找到message这个方法,就执行它实现的IMP。
5. 如果没有找到则尝试方法解析器:
调用+ resolveInstanceMethod: 或+ resolveClassMethod: 方法,添加方法的实现。如果你添加方法并返回YES,那系统在运行时就会重新启动一次消息发送的过程
6. 如果resolveInstanceMethod 方法返回NO ,运行时就跳转到下一步:**消息转发**
如果目标对象实现- forwardingTargetForSelector:方法,系统就会在运行时调用这个方法,只要这个方法返回的不是nil或self,也会重启消息发送的过程,把这消息转发给其他对象来处理
7. 如果未实现上述消息转发则调用methodSignatureForSelector:,创建一个NSInvocation对象并调用-forwardInvocation:方法

3. OBJC类和对象

Objective-C 中的类和对象

4. Objective-C block的实现原理

谈Objective-C block的实现
iOS OC语言: Block底层实现原理
objc 中的 block
正确使用Block避免Cycle Retain和Crash

5. SDWebImage

SDWebImage 实现过程

6. 推送

iOS推送之远程推送

7.GCD

GDC使用
GCD 深入理解:第一部分
GCD 深入理解:第二部分

8.KVO实现原理

KVO实现原理

9.+load() 与 + initialize()

iOS - + initialize 与 +load
NSObject的load和initialize方法

10.layoutSubviews和drawRect

UIView中的layoutSubviews和drawRect
UIView的layoutSubviews和drawRect方法

11. CALayer 和 UIView的区别和联系

CALayer 和 UIView的区别和联系

12. iOS 响应者链,事件的传递

iOS 响应者链,事件的传递

13. copy和mutableCopy

copy和mutableCopy

更新中。。。
上一篇 下一篇

猜你喜欢

热点阅读