回顾OC

作者: fcf7850dd33e | 来源:发表于2024-02-05 16:32 被阅读0次

    1、OC的消息转发机制

    1、消息查找:从方法缓存中找方法,找不到去方法列表中找,找到了将该方法加入方法缓存,还是找不到,去父类里重复前面的步骤,如果找到底都找不到那么进入2

    2、动态解析:看该类是否实现了resolveInstanceMethod:和resolveClassMethod:,如果实现了就解析动态添加的方法,并调用该方法,如果没有实现进入3

    3、消息转发:

    调用forwardingTargetForSelector:看返回的对象是否为nil,如果不为nil,调用objc_msgSend传入对象和SEL。

    如果上面为nil,那么就调用methodSignatureForSelector:返回方法签名,如果方法签名不为nil,调用forwardInvocation:来执行该方法

    4、一直没有处理成功,最后会报错

    objc_msgSend

    2、KVC/KVO

    3、内存管理

    4、Block :https://www.jianshu.com/p/4e79e9a0dd82

    5、多线程

    //多线程/锁/线程安全/线程同步/NSOperation

        //GCD:

    https://www.jianshu.com/p/2d57c72016c6

        //锁: http://www.cocoachina.com/articles/34796?filter=rec

        //锁:https://www.jianshu.com/p/ddbe44064ca4

        //锁:https://www.jianshu.com/p/65dd76287673

        //https://www.jianshu.com/p/6d6832e42936

        //读写锁

        /*

         1、GCD 高级用法

                    串行队列            并行队列          主队列

         同步    无新线程、串行执行  无新线程、串行执行      死锁

         异步    开1条线程串行执行                    没有开启新线程,串行执行

         */

    相关文章

      网友评论

          本文标题:回顾OC

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