美文网首页
IOS面试题(类相关) --- 通知Notification

IOS面试题(类相关) --- 通知Notification

作者: ShawnAlex | 来源:发表于2022-04-20 23:58 被阅读0次

    OC面试题目合集地址

    问题一: 代理, 通知, block区别是什么

    通知
    • 使用观察者模式来实现用于跨层传递消息机制
    • 传递方式一对多
    • 没有回调
    代理
    • 使用代理模式来实现传递
    • 传递方式一对一
    • 需要创建协议
    • 协议和实现是分开的,可读性差,可维护性高
    • 运行成本低, 消耗少
    • 可以回调
    block
    • 本质是OC对象
    • 传递方式一对一
    • 比较简便,快捷,可读性好一些
    • 效率高 (block效率高是因为block是内联)
    • 运行成本高 (当block出栈时,会将使用的数据从栈内存拷贝到堆内存,对象引用计数+1,导致运行成本高)
    • 可以回调

    问题二: 描述下通知一对多的流程

    通知一对多的流程

    发送者(代码实现是postnotification方法调用)经由通知中心广播给其他观察者


    问题三: 通知的实现机制或者让你设计实现通知机制

    通知机制
    • 通知中心内部维护一张通知表
    • 通知表以通知名称NotificationName做key, 以观察者集合Observer做value
    • Observer数组列表, 包含通知接收观察者, 回调方法等相关数据信息

    相关文章

      网友评论

          本文标题:IOS面试题(类相关) --- 通知Notification

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