我设法让我现有的核心数据应用与iCloud配合使用。经过几天的学习,实际上非常简单。似乎有三件事是必不可少的:
添加权利文件(在最近的Xcode中,可以通过选择目标,选择"摘要窗格"来完成,向下滚动,选中启用权利"
在添加persisten商店时添加正确的选项,在我的情况下
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
// other options
@"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey,
iCloudURL, NSPersistentStoreUbiquitousContentURLKey,
nil]
,其中
NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
'nil&#39;这里表示使用了Entitlements.plist文件中的信息。
实际上,目前我不确定这最后一步对于开发至关重要 - 我已经启用了另一个没有最后一步的应用程序,它似乎有效。
无论如何,我注意到不同iDevices上同一应用程序的两个现有核心数据库会将新条目同步到核心数据堆栈,但不会自动同步现有记录。
将数据从设备A同步到B的一种方法是删除B上的现有核心数据数据库,然后在B上重新启动应用程序。但是,这不是合适的合并。
在升级应用程序以使用iCloud支持时,是否有人知道在不同应用程序上合并两个现有核心数据数据库的方法,即使用上述选项以及所有这些?
谢谢
答案 0 :(得分:2)
也许这会有所帮助:https://gist.github.com/1475162(@steipete)
答案 1 :(得分:1)
我还没有这样做,但是当保存到iCloud时,如果数据也已更新或存在于其他设备上,则存在冲突信息的高风险。如果冲突未得到妥善解决,则两个设备之间的流量将无法正常进行。解决冲突可能很复杂,但最简单的方法就是让最近的胜利。 Apple有冲突处理程序,当保存到覆盖无处不在的商店识别冲突时会触发。