只是想知道,有没有人有一次激活大量 NSNotification 观察者的经验?
观察者的开销是多少?例如,一次运行 50 或 100 或更多的观察者是否合理?
我有一个应用程序,它显示来自数据库的媒体滚动列表,我想将 NSNotificationCenter 实现为一种可扩展的方法来监听各个媒体片段并将它们分配给正确的 UIView
干杯,道格
只是想知道,有没有人有一次激活大量 NSNotification 观察者的经验?
观察者的开销是多少?例如,一次运行 50 或 100 或更多的观察者是否合理?
我有一个应用程序,它显示来自数据库的媒体滚动列表,我想将 NSNotificationCenter 实现为一种可扩展的方法来监听各个媒体片段并将它们分配给正确的 UIView
干杯,道格
如果在后台处理通知,则不会产生开销。如果您在一个线程中处理 NSNotification,那么任何一个观察者都可能对其处理不当,这将导致线程阻塞。如果该线程恰好是主线程(在您的情况下是),则应用程序将冻结。
这取决于处理通知的方式。发送通知不是开销,它们只是 50 -100 次方法调用,就像任何其他方法一样。(我的应用中有 5000 种方法)。问题在于它的处理方式。如果每个观察者长时间阻塞通知,则无能为力。我会建议使用 NSNotification 队列而不是NSNotification 队列
如果时间允许,我还建议参考阅读苹果关于对象通信的文章。
我将在这个问题上听取 J2theC 的建议。
我目前正在改变设计模式以使用委托方法来防止任何冻结..
感谢您的反馈!