让我解释。我有一个数据类,它只不过是 NSMutableArray 的一个实例。我添加了 currentItem 的属性。当我的应用程序启动时,会创建此类的一个实例,然后与多个视图控制器共享。
当这些视图控制器中的任何一个设置当前项目时 ([myClass setCurrentItem:(MyItem*)item] 我想通知所有视图控制器,以便他们可以更新他们的 UI 等......
我对实施解决方案的最佳方式感到矛盾。我可以:
1.) 使用自定义协议,让我的类通过添加方法 addDelegate:(id)instance 来跟踪委托集合,将委托集合保存在 NSMutableArray ivar 中,然后在设置 currentItem 时进行迭代和通信。
或者
2.) 设置 iVar 时,使用 NSNotification 中心进行通信。
就代表们而言,呼叫顺序对我来说并不重要。
哪种方法更适合这种情况?在我看来,选项 #1 会是更简洁的方法,但我对“多个代表”的搜索结果表明,当有多个代表时,我应该使用 NSNotification 中心,但背后没有太多理由。
你的意见是什么,为什么?