最好的做法是通过NSNotificationCenter沟通一个事件或类似的事情(比如成功登录),还是您可以推荐其他控制机制?
发布于 2013-09-15 15:40:09
至于我,我不喜欢使用NSNotificationCenter,因为它被大量的系统和自定义事件重载。
如果在NSNotificationCenter中添加了大量的观察者,就不应该忘记删除这些观察者,有时还很难知道调用观察方法的顺序。而且,NSNotificationCenter不会超过一次检查或管理添加相同的观察者(当addObserver不在正确的位置时,有时会成为一个真正的麻烦)。
所以:,为什么不创建一些包含所有所需数据并管理所有登录行为的LoginManager?它将包含一些数据,如:isAuthorithed等。当然,如果您需要实现Observer模式,那么您的单例类可以以与NSNotificationCenter相同的方式实现这一点。
发布于 2013-09-15 15:34:57
这取决于事件是什么以及哪些类可能需要了解它。对于登录/注销通知是一个很好的选择,因为许多不同的类可能希望响应该事件。这并不意味着您也不能让触发登录的类使用委托/块回调。
通常,对许多类可能感兴趣的一般事物的通知和对特定事件(以及触发事件的实例)的直接回调。
https://stackoverflow.com/questions/18814018
复制相似问题