其他视图中的 managedObjectContext
Posted
技术标签:
【中文标题】其他视图中的 managedObjectContext【英文标题】:managedObjectContext in Other View 【发布时间】:2010-11-30 16:48:34 【问题描述】:我终于设法让核心数据发挥作用并开始理解它。到目前为止,我只是在一个启用了核心数据的基于窗口的应用程序中播放,在应用程序委托文件中播放。
但是如何从应用程序委托外部访问我的 managedObjectContext,例如,如果我有一个 UIView 子类?
【问题讨论】:
sharing NSManagedObjectContext and other service classes between iphone/ipad tabs的可能重复 另外可能值得一提的是,在与 UIView 子类共享 managedObjectContext 之前,您应该三思而后行。 UIView 本质上是视图,不应该直接处理数据模型。您可能希望将上下文引用传递给另一个视图控制器,然后将特定托管对象的引用传递给视图,而不是实际的上下文。 【参考方案1】:尝试使用
[[[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.");
根据需要更改日志语句。
【讨论】:
哦哦。经过更深入的测试,似乎已经实现了这一点,数据只会在应用程序执行时保留。一旦应用程序退出并重新打开,数据就消失了!想法?! 原来数据保存问题是因为这个:***.com/questions/4326303/…以上是关于其他视图中的 managedObjectContext的主要内容,如果未能解决你的问题,请参考以下文章
如何单击列表视图项中的各个控件而不影响其他列表视图项中的控件?