NSNotificationCenter 真的很酷,我们可以用它构建非常可扩展的应用程序。我的问题是:我们是否可以在应用程序中滥用 NSNotificationCenter,即密集使用它,还是它不是一个好的选择? 目前,当我有 JSON 服务响应时,我正在使用它:我发布通知,因此我有几个监听器监听此类通知。到目前为止,我有近数十个服务需要调用,并且可以说根据这些通知要实现更多操作。 WDYT? 谢谢
最佳答案
根据我的经验,编写广泛使用 NSNotificationCenter 的应用程序会导致维护噩梦,需要引用使用数据的(委托(delegate))对象意味着您可以逐步完成处理数据的实际过程;有了通知,事情就变得太脱节了。
也就是说,在很多时候通知都是有意义的(设备旋转、应用程序启动/退出、广泛的状态变化),但我通常会尽可能避免它们。
我发现通知工作良好的一个地方是当我有一个 Controller 来管理许多其他 Controller 使用的数据时;当数据发生变化时,我会发出通知,这允许所有感兴趣的各方进行更新。例如,我可能有一个 UserController 来管理有关当前用户的信息(姓名、照片等)。当某些用户数据发生更改时,我将发布通知(例如 UserControllerDidUpdatePhotoNotification)。然后,任何感兴趣的 View Controller 都可以选择更新他们正在显示的照片。
我认为阻止我使用通知的最大原因是对可维护性的渴望,如果您使用通知仍然允许您拥有可维护的代码,那么就继续使用它们;如果没有,请改用其他设计。
关于cocoa - 滥用 NSNotificationCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158115/