iOS delegate、NSNotification效率比較
阿新 • • 發佈:2019-01-28
//聯絡人:石虎 QQ: 1224614774 暱稱:嗡嘛呢叭咪哄
一、delegate的效率肯定比NSNotification高.
delegate方法比notification更加直接,最典型的特徵是,delegate方法往往需要關注返回值,也就是delegate方法的結果。
比如-windowShouldClose: 需要關心返回的是yes還是no。所以delegate方法往往包含
should這個很傳神的詞。也就是好比你做我的delegate,我會問你我想關閉視窗你願意嗎?你需要給我一個答案,我根據你的答案來決定如何做下一步。相反的,notification 最大的特色就是不關心接受者的態度,我只管把通告放出來,你接受不接受就是你的事情,同時我也不關心結果。
所以notification往往用did這個詞彙,比如NSWindowDidResizeNotification,那麼NSWindow物件放出這個notification後就什麼都不管了也不會等待接受者的反應。
二、KVO和NSNotification的區別:
1)和delegate一樣,KVO和NSNotification的作用也是類與類之間的通訊,與delegate不同的是:這兩個都是負責發出通知,剩下的事情就不管了,所以沒有返回值;
2)delegate只是一對一,而這兩個可以一對多。這兩者也有各自的特點。
謝謝!!!