遵循各种 Objective-C 编程指南中强调的 MVC 模式,当我使用带有控制器的模型时,我应该将控制器设置为delegate
给定模型的。现在我有一个巨大的 Data 对象,创建起来非常昂贵,并且有一些控制器需要使用这个 Data 对象。只要将delegate
属性设置为正确的 Controller,Data 对象就可以在该控制器上正常工作。有没有办法在这些控制器之间共享这个模型?
我已经集思广益了一段时间,但还没有想到任何特别好的解决方案。我提出的一些事情
- 使用通知中心(但仅针对这种特定情况建立这样的关系似乎很昂贵)
- 使 Data 对象的每个方法都带有一个
delegate
参数:这是我现在正在使用的,但它很笨重并且正在达到其极限
编辑
感谢那些向我建议使用 NSArray 的人。我想我忘了包括这个微妙之处:
就我而言,假设其中一位代表A
想要使用 Data 对象的一种特定方法来查询它。delegate
如果Data 对象的字段设置为 ,结果将是正确的A
。但是据我了解,使用数组并在每个委托上调用该方法不会给我想要的答案。
事实上,由于我的 Data 对象不知道哪个委托正在调用它,因此即使它知道应该与之关联的所有委托,它也无法返回正确的结果
对此有什么想法吗?