I am using .xibs and I want to use Core Data. The simplest answer is to define @property
in AppDelegate.h. But I need to fill my model in xml-parser files and I want to fetch data in many controllers. So using [[[UIApplication sharedApplication] delegate] context]
there is so ugly.
Is there any good-looking solution?
2 回答
请记住,子类的每个对象NSManagedObject
也都有上下文。假设您有(经典示例)Book
和Author
. 这是 Entitis ofc。关系为 1-n(一位作者 - 多本书)。
我不知道您在这里尝试完成什么,但在许多应用程序中,您拥有主-细节-更多细节 - ... viewControllers。回到例子:
假设您的 MainViewController 是一个AuthorsViewController
. 这是一个带有作者的 tableView。你想点击作者,看看他写了什么书。所以在你的BooksViewController
你有一个模型属性:
@property (strong,nonatomic) Author *author;
你可以用许多不同的方式设置它。自定义设置器,从 segue 传递...没关系。我敢肯定,这很明显。
这样做的好处是,在您执行此操作后,您的BooksViewController
. 每次写:
self.author.managedObjectContext
这将是正确的上下文。
因此,当您拥有应用程序时,您可以在单例类或 mainVCnavigationController
中或中创建上下文。AppDelegate
您只会调用它一次,然后从中调用它NSManagedObject
,您将通过。
你可以试试这个很棒的教程:core data with a single shared uimanageddocument