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