IOS面試題(類相關(guān)) --- 通知Notification

OC面試題目合集地址

問題一: 代理, 通知, block區(qū)別是什么

通知
  • 使用觀察者模式來實(shí)現(xiàn)用于跨層傳遞消息機(jī)制
  • 傳遞方式一對多
  • 沒有回調(diào)
代理
  • 使用代理模式來實(shí)現(xiàn)傳遞
  • 傳遞方式一對一
  • 需要創(chuàng)建協(xié)議
  • 協(xié)議和實(shí)現(xiàn)是分開的,可讀性差,可維護(hù)性高
  • 運(yùn)行成本低, 消耗少
  • 可以回調(diào)
block
  • 本質(zhì)是OC對象
  • 傳遞方式一對一
  • 比較簡便,快捷,可讀性好一些
  • 效率高 (block效率高是因?yàn)閎lock是內(nèi)聯(lián))
  • 運(yùn)行成本高 (當(dāng)block出棧時,會將使用的數(shù)據(jù)從棧內(nèi)存拷貝到堆內(nèi)存,對象引用計數(shù)+1,導(dǎo)致運(yùn)行成本高)
  • 可以回調(diào)


問題二: 描述下通知一對多的流程

通知一對多的流程

發(fā)送者(代碼實(shí)現(xiàn)是postnotification方法調(diào)用)經(jīng)由通知中心廣播給其他觀察者



問題三: 通知的實(shí)現(xiàn)機(jī)制或者讓你設(shè)計實(shí)現(xiàn)通知機(jī)制

通知機(jī)制
  • 通知中心內(nèi)部維護(hù)一張通知表
  • 通知表以通知名稱NotificationName做key, 以觀察者集合Observer做value
  • Observer數(shù)組列表, 包含通知接收觀察者, 回調(diào)方法等相關(guān)數(shù)據(jù)信息
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容