NSNotifications的开销

时间:2011-06-09 16:15:37

标签: objective-c cocoa-touch ios nsnotification

我最近开始使用NSNotification s:

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

我发现它是视图控制器之间通信的一个很棒的概念。对于应用程序中的所有通信,使用NSNotification s似乎有点太容易了。

如果我在我的应用程序中使用NSNotification s进行大部分工作,您认为对于太多这些工作的开销是多少?

2 个答案:

答案 0 :(得分:7)

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

因此,像@slev所说,代表们是一个更好的方法。仅在无法使用委托方法时才使用通知。

答案 1 :(得分:1)

我似乎记得曾经读过NSNotification非常消耗,所以使用它们可能不是最好的主意。相反,我会考虑采用delegate协议。您可以轻松创建自己的文件,告诉您的文件做什么和何时做。

This site给出了一个与我过去学习如何创建代理的示例非常类似的示例,可能值得研究。我曾经一直使用NSNotifications,直到我了解了代表,并且已经将我的所有通知转换为委托方法

相关问题