我有一个使用核心数据和集成iCloud的应用。该应用程序适用于添加和删除核心数据的数据。但是当谈到iCloud时,只添加新对象正在运行。当我在一个设备中删除一个对象时,它不会在另一个设备上更新。
以下是我在核心数据中删除的代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSManagedObjectContext *context = [self managedObjectContext];
Watchlist *stockToDelete = [self.fetchedResultsController objectAtIndexPath:indexPath];
[context deleteObject:stockToDelete];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Error! %@", error);
}
}
}
这是我的代码与iCloud合并政策:
- (void)mergeChangesFromiCloud:(NSNotification *)notification {
NSManagedObjectContext* moc = [self managedObjectContext];
NSDictionary *noteInfo = [notification userInfo];
[moc performBlock:^{
NSMutableDictionary *mergingPolicyResult = [NSMutableDictionary dictionary];
[mergingPolicyResult setObject:noteInfo[NSInsertedObjectsKey]
forKey:NSInsertedObjectsKey];
[mergingPolicyResult setObject:noteInfo[NSUpdatedObjectsKey]
forKey:NSUpdatedObjectsKey];
[mergingPolicyResult setObject:[NSSet set] // Exclude deletions
forKey:NSOverwriteMergePolicy];
NSNotification *saveNotification =
[NSNotification notificationWithName:notification.name
object:self
userInfo:mergingPolicyResult];
[moc mergeChangesFromContextDidSaveNotification:saveNotification];
[moc processPendingChanges];
}];
}
那么,有人可以帮我这个吗?
谢谢。
答案 0 :(得分:1)
尝试使用此行
[moc mergeChangesFromContextDidSaveNotification:notification];
不确定您要修改通知的原因。