2010-11-30 58 views
2

我终于设法让核心数据工作并开始理解它。到目前为止,我刚刚在基于窗口的应用程序中启用了核心数据,并在应用程序委托文件中播放。managedObjectContext in Other View

但是我怎样才能访问我的managedObjectContext从外部的应用程序委托,例如,如果我有一个UIView子类?

希望你能帮忙,谢谢。

+0

[共享NSManagedObjectContext和其他服务类之间的iPhone/iPad的标签]可能的重复(http://stackoverflow.com/questions/3437033/sharing-nsmanagedobjectcontext-and-other-service-classes-between-iphone-ipad-标签) – willcodejavaforfood 2010-11-30 16:52:19

+0

也可能值得一提的是,在与UIView子类共享managedObjectContext之前,您应该考虑两次。 UIView是固有的视图,不应该直接处理数据模型。您可能希望将上下文引用传递给另一个视图控制器,然后将特定托管对象的引用传递给视图,但不传递实际上下文。 – Rog 2010-11-30 19:01:01

回答

3

尝试使用

[[[UIApplication sharedApplication] delegate] managedObjectContext]; 

为了摆脱的警告,投的委托作为你的实际的AppDelegate;例如,

NSManagedObjectContext *context = [(YourAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 

编辑:

后更改的任何数据,你需要保存它。这里是我使用的方法:

NSManagedObjectContext *moc = [self managedObjectContext]; 

NSError *error; 
if (![moc save:&error]) { 
    NSLog(@"Couldn't save current data in current method."); 
} 

如果您认为合适,请更改日志语句。