无法在设备之间进行iCloud同步

时间:2013-12-28 13:11:51

标签: objective-c ios7 sync icloud

我有一个使用核心数据和集成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]; 
}]; 
}

那么,有人可以帮我这个吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用此行

[moc mergeChangesFromContextDidSaveNotification:notification];

不确定您要修改通知的原因。