沟通观点变化

时间:2013-09-15 15:21:53

标签: ios nsnotificationcenter

最佳做法是通过NSNotificationCenter传达活动或类似事件(如成功登录),还是可以推荐其他任何控制机制?

2 个答案:

答案 0 :(得分:2)

至于我,我不喜欢使用NSNotificationCenter因为它有大量的系统和自定义事件。

如果你向NSNotificationCenter添加了很多观察者,你不应该忘记删除这些观察者,有时也很难知道调用观察方法的顺序。另外NSNotificationCenter不会检查或管理多次添加同一个观察者(当你将addObserver放在正确的位置时,它有时会成为一个真正的麻烦)。

所以:为什么不创建一些LoginManager单例,它将包含所有需要的数据并管理所有登录行为?它将包含一些数据:isAuthorithed等。当然,如果你需要实现Observer模式,你的单例类可以像NSNotificationCenter

答案 1 :(得分:1)

这取决于事件是什么以及可能需要了解哪些类。对于登录/注销通知是一个很好的选择,因为许多不同的类可能想要响应事件。这并不意味着你也不能让一个委托/块回调供触发登录的类使用。

通常,对于许多类可能感兴趣的一般事物的通知以及特定事件(以及触发事件的实例)的直接回调。