如何在iOS应用程序中传递NSManagedObjectContext?

时间:2013-06-21 07:50:17

标签: ios objective-c core-data nsmanagedobjectcontext

我正在使用.xibs,我想使用Core Data。最简单的答案是在AppDelegate.h中定义@property。但我需要在xml-parser文件中填充我的模型,我想在许多控制器中获取数据。所以使用[[[UIApplication sharedApplication] delegate] context]就太难看了。 有什么好看的解决方案吗?

2 个答案:

答案 0 :(得分:1)

请记住,子类NSManagedObject的每个对象也都有上下文。 假设您有(经典示例)BookAuthor。这是Entitis ofc。关系1-n(一位作者 - 多本书)。

我不知道你在这里尝试完成了什么,但是在许多应用程序中你都掌握了详细信息 - 更多细节 - ... viewControllers。回到例子:

让我们说你的MainViewController是AuthorsViewController。这是一个有作者的tableView。你想点击作者,看看他写的是什么书。所以在你的BooksViewController中你有一个模型属性:

@property (strong,nonatomic) Author *author;

您可以通过多种方式设置它。自定义setter,从segue传递...没关系。我相信这很明显。

在这样做之后,您已经在BooksViewController中拥有了一个上下文。每次你写:

self.author.managedObjectContext这将是正确的背景。

因此,当您拥有navigationController应用时,您可以在AppDelegate或单例类或mainVC中创建上下文。您只需拨打一次,然后从NSManagedObject调用它即可通过。

答案 1 :(得分:-1)

您可以尝试这个很棒的教程:core data with a single shared uimanageddocument