1

我最近开始使用NSNotifications:

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

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

如果我NSNotification在我的应用程序中使用 s 来完成大部分工作,您认为其中太多的开销是多少?

4

2 回答 2

7

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

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

于 2011-06-09T16:37:40.623 回答
1

我似乎记得读过 NSNotification 非常消耗开销,因此使用其中的很多可能不是最好的主意。相反,我会考虑采用delegate协议。您可以轻松地创建自己的文件来告诉您的文件要做什么以及何时执行。

这个网站提供了一个与我用来学习如何创建委托的示例非常相似的示例,可能值得研究一下。我曾经一直使用 NSNotifications,直到我了解了委托,并从那时起将所有通知切换到委托方法

于 2011-06-09T16:31:58.903 回答