OC部分原理参考

作者: RunningDu | 来源:发表于2016-05-17 17:26 被阅读74次

    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

    更新中。。。

    相关文章

      网友评论

        本文标题:OC部分原理参考

        本文链接:https://www.haomeiwen.com/subject/afsbrttx.html