iOS delegate、NSNotification效率比較

//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄

一、delegate的效率肯定比NSNotification高.

delegate方法比notification更加直接,最典型的特征是,delegate方法往往需要關(guān)注返回值,也就是delegate方法的結(jié)果。

比如-windowShouldClose:需要關(guān)心返回的是yes還是no。所以delegate方法往往包含should這個(gè)很傳神的詞。也就是好比你做我的delegate,我會(huì)問你我想關(guān)閉窗口你愿意嗎?你需要給我一個(gè)答案,我根據(jù)你的答案來決定如何做下一步。相反的,notification最大的特色就是不關(guān)心接受者的態(tài)度,我只管把通告放出來,你接受不接受就是你的事情,同時(shí)我也不關(guān)心結(jié)果。

所以notification往往用did這個(gè)詞匯,比如NSWindowDidResizeNotification,那么NSWindow對象放出這個(gè)notification后就什么都不管了也不會(huì)等待接受者的反應(yīng)。

二、KVO和NSNotification的區(qū)別:

1)和delegate一樣,KVO和NSNotification的作用也是類與類之間的通信,與delegate不同的是:這兩個(gè)都是負(fù)責(zé)發(fā)出通知,剩下的事情就不管了,所以沒有返回值;

2)delegate只是一對一,而這兩個(gè)可以一對多。這兩者也有各自的特點(diǎn)。

謝謝!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容