我的核心数据堆栈像往常一样在 AppDelegate 中设置。我是一个优秀的 OO 公民,并认识到可以通过 [[UIApplication sharedApplication] delegate] managedObjectContext]
直接访问它(或将其移动到某个单例)是全局状态/代码气味/顽皮。
但是需要访问数据的 Controller 大约有五层深。中间有容器 Controller 、模态和熊。我是否应该简单地将上下文向下传递到每一层,以便最后一个屏幕可以吐出实体列表?看起来这限制了可重用性,增加了复杂性,并降低了可理解性。
最佳答案
是的,您应该按照 Apple 的建议传递它。然而,在某些情况下我一直很懒惰,只是从 App 委托(delegate)中获取它,因为我没有做任何多线程计算。我大部分时间都在尝试坚持苹果的指导方针,并确保我默认传递上下文,所以如果我需要它更低,我就拥有它。
“ View Controller 通常不应从全局对象(例如应用程序委托(delegate))中检索上下文——这会使应用程序架构变得僵化。”
关于ios - 传递一个 NSManagedObjectContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793017/