Core data 模型控制器循环参考/设计问题

Core data 模型控制器循环参考/设计问题,core-data,cyclic-reference,objective-c,Core Data,Cyclic Reference,Objective C,我有一个CoreData实体X和这个实体的控制器XController。 现在有了另一个实体XGroup,它包含X个实体的集合和一个XGroupController 现在的问题是XGroupController需要与XController交互,最好只向XGroupController传递一个要观察的XGroup,然后从X实体获取XController 所以问题是:在实体中存储对控制器的(弱的,以避免保留循环)引用是一个好主意吗?只是感觉有点“不对”。有其他的设计模式吗 [编辑]更多信息: XCo

我有一个CoreData实体X和这个实体的控制器XController。 现在有了另一个实体XGroup,它包含X个实体的集合和一个XGroupController

现在的问题是XGroupController需要与XController交互,最好只向XGroupController传递一个要观察的XGroup,然后从X实体获取XController

所以问题是:在实体中存储对控制器的(弱的,以避免保留循环)引用是一个好主意吗?只是感觉有点“不对”。有其他的设计模式吗

[编辑]更多信息: XController/XGroupController是视图控制器;它感觉“错误”的原因是视图层不应该在模型层中。所以@TechZen的第一段是正确的

然而,如果我没有那个参考资料,我该怎么做呢? 我看到的方法是将所有现有的Xcontroller传递给XGroupController(在它们更改时更新它们),然后当XGroup中的项更改时,找到相应的控制器(通过检查其X实体的Xcontroller属性是否在XGroup中),最后与Xcontroller对话

我必须再做一次工作,因为模型已经处理得很好了。 如果我下次必须处理控制器层中的组,这难道不会使模型层变得毫无意义吗

Loc/复杂性方面的差异非常显著,我是否遗漏了什么?(也许我应该补充一点,在我的场景中,存储XGroupController需要通过模型提供给XController的信息是没有意义的)。

如果“控制器”是指MVC视图/接口控制器,那么是的,这是错误的,因为它破坏了封装。数据模型应该完全不关心其数据的显示方式

如果您的“控制器”只是一个具有该名称的实体,那么您可能希望使用获取的关系来让两个控制器相互通信。这样可以防止对象图中出现循环关系