【发布时间】:2014-07-17 00:26:09
【问题描述】:
我的核心数据堆栈像往常一样在 AppDelegate 中设置。我是一个优秀的 OO 公民,并且认识到通过 [[UIApplication sharedApplication] delegate] managedObjectContext] 直接访问它(或将其移动到某个单例)是全局状态/代码异味/顽皮。
但是需要访问数据的控制器大约有五层深。中间有容器控制器和模式和熊。我是否应该简单地将上下文传递到每一层,以便最后一个屏幕可以吐出实体列表?这似乎限制了可重用性、增加了复杂性并降低了可理解性。
【问题讨论】:
-
如果需要数据的控制器有五层深,它是否是分层控制器结构的一部分 - 即 - 控制器是否从“父”继承并在顶部从“根”继承“ 控制器?如果是这样,您可以基于 AppDelegate MOC 为该“根”控制器设置公共 MOC,然后默认情况下由所有“子”控制器继承。
标签: ios objective-c cocoa-touch core-data