我想将iCloud同步添加到我的基于CoreData的应用程序,并使其成为一个选项,而不是唯一的状态。从我看到的,在iOS 7+中添加iCloud归结为添加
@{NSPersistentStoreUbiquitousContentNameKey: @"MyCloudStore"}
选项字典到addPersistentStoreWithType:...
调用,并通过合并传入数据来响应NSPersistentStoreDidImportUbiquitousContentChangesNotification
。
这是否意味着要在应用中启用/禁用iCloud同步,我只需要使用适当的选项将商店重新添加到persistentStoreCoordinator
并添加/删除NSPersistentStoreDidImportUbiquitousContentChangesNotification
观察者?使用相同的本地SQLite文件会有任何问题吗?
答案 0 :(得分:1)
不,这还不够,您还需要对NSPersistentStoreCoordinatorStoresWillChangeNotification和NSPersistentStoreCoordinatorStoresDidChangeNotification做出反应。
您还需要反映您的功能,例如:如果你有初始数据,你需要考虑在第二台设备/对等设备上安装应用程序时发生的事情,以避免重复数据。
此外,您需要检查帐户是否更改,以及更多问题。
苹果https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013491-CH1-SW1提供了很好的文档,可以很好地描述需要考虑的内容。