NSNotifications的开销

我最近开始使用NSNotification s:

 [[NSNotificationCenter defaultCenter] postNotificationName: selector: object:]; .... 

我觉得这是一个很好的概念之间的视图控制器之间进行通信。 对于应用程序中的所有通信,使用NSNotification似乎有点太简单了。

如果我在我的应用程序的大部分工作中使用了NSNotification ,那么您认为太多的开销会是什么?

我似乎回想起NSNotification非常耗费的消耗,所以使用它们中的很多可能不是最好的主意。 相反,我会考虑采用delegate协议。 你可以很容易地创build自己的文件,告诉你的文件做什么和什么时候做。

这个网站提供了一个非常类似于我用来学习如何创build代表的例子,可能值得研究。 我以前一直使用NSNotifications,直到我了解了代表,然后将所有通知切换到委托方法

你需要记住NSNotification的一件事是它们是一个阻塞机制。 因此,发布通知的对象不需要知道谁在接收,如果接收者太多,则必须在postNotification调用返回之前处理所有的postNotification 。 这是你必须考虑的事情。

正如@slev所说,代表们是一个更好的方法。 仅当您不能使用委托方法时才使用通知。