大佬教程收集整理的这篇文章主要介绍了核心数据iOS 8今日小工具问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
+ (DataManager *)sharedInstance; { static DataManager *sharedInstance = nil; static dispatch_once_t pred; dispatch_once(&pred,^{ sharedInstance = [[DataManager alloc] init]; }); return sharedInstance; }
在这里,我跟踪我的managedObjectContext,managedObjectModel,persistentStoreCoordinator.
- (NSArray *)getItems { NSFetchrequest *fetchrequest = [[NSFetchrequest alloc] initWithEntityName:@"Item"]; return [[self managedObjectContext] executeFetchrequest:fetchrequest error:nil]; }
现在在我的主应用程序中,当我调用此getItems然后单独修改项目时,我有一个视图控制器.例如,set item.itemname = @“testName”;然后调用我的save方法.
我也有一个iOS 8,在我的TodayViewController中我也调用了getItems方法.我有一个Nsnotification,它检测managedObjectContext保存.
[[NsnotificationCenter defaultCenter] addObserver:self SELEctor:@SELEctor(refetchItems) name:NsmanagedObjectContextDidSaveNotification object:[[DataManager sharedInstance] managedObjectContext]];
这些重新获取的项目会被调用,但会返回过时的NsmanagedObjects.例如,itemname没有更改为@“testName”.
我哪里错了?如果您需要查看任何其他代码,请告诉我们.
谢谢!
[_managedObjectContext refreshObject:act mergeChanges:YES];
或者对于iOS版本8.3及更高版本,您可以使用以下方法一次更新上下文中的所有ManagedObject,如下所示.
[_managedObjectContext refreshAllObjects];
它有点工作,但仅适用于数据updatE,而不适用于添加或删除数据.
如果它不起作用,您也可以添加
[_managedObjectContext reset];
之后,您必须阅读“重新分配”您从核心数据存储中加载的所有变量.
如果上述方法无效,则另一种解决方案是删除当前上下文并再次创建.
我刚刚开始
_persistentStoreCoordinator = nil; _managedObjectModel = nil; _managedObjectContext = nil;
@property (nonatomic,retain,readonly) NsmanagedObjectModel *managedObjectModel; @property (nonatomic,readonly) NsmanagedObjectContext *managedObjectContext; @property (nonatomic,readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
在课堂上我手动创建了setter.如果我因为Setter而没有所有变量,那么一旦我在核心数据管理器类之外读取它们,它们就会再次出现.
您可以使用NSUserDefault商店来改善这一点.它正在正确更新.在主应用程序中,如果更改了smething,请在NSUserDefault中设置标志.在扩展中,读取此标志并标记标志,重置核心数据.这样,您将节省一些刻度并使事情变得更快.
对于NSUserDefault的分配(在两个应用程序中 – 扩展和主要)使用此 – 之后,您可以通过它来读取数据并且它们应该同步
NSUserDefaults *prefs = [[NSUserDefaults alloc] initWithSuitename:GROUP_NAME]; //share with extension
以上是大佬教程为你收集整理的核心数据iOS 8今日小工具问题全部内容,希望文章能够帮你解决核心数据iOS 8今日小工具问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。