Виджеты в нашем приложении iOS являются настраиваемыми, поэтому я добавил функцию для удаления частей виджета. Чтобы сохранить настройки для виджетов и т. Д., Наши виджеты разделяют основные данные через группы приложений. Однако, когда я удаляю что-то из виджета, он, похоже, не всегда правильно синхронизируется. Это происходит, прежде всего, когда приложение активно в памяти.Синхронизация группы приложений Core Data (w/extension)
Когда я удалить то, что я называю это:
-(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];
}
Я уверен, что и методы получения называется. Но иногда приложение видит виджет, который я только что удалил, а затем он снова появляется в моем виджете.
EDIT: Я думаю, что случается, что контекст CoreData в моем обновлении приложение не суммируется и не правильно, а затем виджет фактически синхронизируется с CoreData в моем приложении. Поэтому удаленный виджет снова появляется через некоторое время. Все еще выясняя это ...