从AppDelegate获取ManagedObjectContext时感到困惑

Jim*_*Jim 6 iphone core-data cocoa-design-patterns

我一直在查看有关Core Data的文档,并试图找出如何安排Core Data Stack,以便所有UITableViewControllers都可以访问它.Apple提供的所有示例都表明这是在AppDelegate上实现的,但是文档并没有推荐这种方法,因为它太过曲折了!见链接.

(为什么在iPhone SDK文档中没有提到这是另一个谜)

我的问题是我按照TopSongs中显示的Core Data示例重复了设计模式,以检索子表视图的ManagedObjectContext实体,并生成以下错误...无法找到实体名称'Song'的NSManagedObjectModel.奇怪的是,这可以在父表视图中找到它,所以我认为这是因为AppDelegate上的核心数据堆栈已经被处理掉了.

有没有人知道一个很好的例子,它遵循与Recipies,CoreData Books和Locations上创建的设计模式不同的设计模式?所有这些都遵循相同的模式.

我想要做的就是检索原始数据,并在chid tableview中使用不同的标准进行排序.

Bra*_*son 4

关于人们喜欢将核心数据堆栈放置在这个问题中的位置,存在着重要的讨论。我倾向于将堆栈放置在单例中(正如我在那里指出的那样)。这使您可以在应用程序中的任何需要的地方方便地访问堆栈。

至于你的问题,我发现你的核心数据堆栈的元素不太可能被释放。一方面,您在向上下文或模型发送消息时会崩溃,而不是返回现在的报告。如果您可以从应用程序中的其他位置访问“歌曲”实体,我敢打赌您没有将模型上下文正确传递给需要它的实例。