我最近开始使用NSNotification
s:
[[NSNotificationCenter defaultCenter] postNotificationName: selector: object:]; ....
我发现它是视图控制器之间通信的一个很棒的概念。对于应用程序中的所有通信,使用NSNotification
s似乎有点太容易了。
如果我在我的应用程序中使用NSNotification
s进行大部分工作,您认为对于太多这些工作的开销是多少?
答案 0 :(得分:7)
关于NSNotification
,你需要记住的一件事是它们是一种阻塞机制。因此,虽然发布通知的对象不需要知道谁正在接收它,但如果接收者太多,则必须在postNotification
呼叫返回之前处理所有这些接收者。这是你必须考虑的事情。
因此,像@slev所说,代表们是一个更好的方法。仅在无法使用委托方法时才使用通知。
答案 1 :(得分:1)
我似乎记得曾经读过NSNotification非常消耗,所以使用它们可能不是最好的主意。相反,我会考虑采用delegate
协议。您可以轻松创建自己的文件,告诉您的文件做什么和何时做。
This site给出了一个与我过去学习如何创建代理的示例非常类似的示例,可能值得研究。我曾经一直使用NSNotifications,直到我了解了代表,并且已经将我的所有通知转换为委托方法