1
我们iOS应用程序中的小部件是自定义的,因此我添加了一个功能来删除部件。为了保存小部件等的设置,我们的小部件通过App组共享Core Data。但是,当我从小部件中删除某些东西时,它似乎总是无法正确同步。这主要发生在应用程序在内存中处于活动状态时。核心数据应用程序组同步(带扩展)
当我删除的东西我称之为:
-(void)removeWidgetFromUser:(UserModel *)user Widget:(Widget *)widget{
if(widget != nil){
[widgetContext deleteObject:widget];
NSError *error;
if (![widgetContext save:&error]) {
NSLog(@"Unable to remove widget %@", error);
}
}
}
然后我用虫洞在我的应用程序同步的核心数据,并调用此:
-(void)updateCoreData{
[self.managedObjectContext refreshAllObjects];
}
我相信这两种方法得到调用。但是有时应用程序会看到我刚刚移除的小部件,然后它也恰好重新出现在我的小部件中。
编辑: 我觉得发生了什么是我的应用程序犯规更新CoreData上下文正确,然后小部件实际上是与CoreData在我的应用程序同步。因此,删除的小部件在一段时间后会重新出现。还是搞清楚了......