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在我的應用程序同步。因此,刪除的小部件在一段時間後會重新出現。還是搞清楚了......