NSNotification观察员开销

时间:2012-08-16 18:22:20

标签: iphone ios5 nsnotificationcenter

只是想知道,有没有人有过一次激活大量NSNotification观察员的经验?

观察者的开销是多少?例如,每次运行50或100或更多观察者是否合理?

我有一个应用程序显示来自数据库的滚动媒体列表,我想实现NSNotificationCenter作为一种可扩展的方法来监听各个媒体并将它们分配给正确的UIViews

干杯, 道格

2 个答案:

答案 0 :(得分:1)

如果在后台处理通知,则通知没有开销。如果您在一个线程中处理NSNotification,那么任何一个观察者都可能会错误处理它,这会导致阻塞线程。如果这个线程碰巧是主线程(在你的情况下是),那么应用程序将冻结。

这取决于通知的处理方式。发送通知不是开销,它们只是50 -100个方法调用,就像任何其他方法一样。 (我的应用程序中有5000种方法)。这个问题是处理它的方式。如果每个观察者长时间阻止通知,则无法完成任何操作。我建议使用NSNotification队列NSNotification Queue

如果时间允许,我还建议您参考reading article on Objects Communication by apple.

答案 1 :(得分:0)

我将接受J2theC对此的建议..

我目前正在改变设计模式以使用委托方法来防止任何冻结..

感谢您的反馈!