iOS Core Data iCloud 同步 - 可选

Posted

技术标签:

【中文标题】iOS Core Data iCloud 同步 - 可选【英文标题】:iOS Core Data iCloud sync - make optional 【发布时间】:2014-11-11 14:56:25 【问题描述】:

我想将 iCloud 同步添加到基于 CoreData 的应用程序中,并使其成为一个选项,而不是唯一的状态。据我所知,在 ios 7+ 中添加 iCloud 归结为添加

@NSPersistentStoreUbiquitousContentNameKey: @"MyCloudStore"

addPersistentStoreWithType:... 调用的选项字典,并通过合并传入数据来响应NSPersistentStoreDidImportUbiquitousContentChangesNotification

这是否意味着要在应用程序中启用/禁用 iCloud 同步,我只需使用适当的选项将商店重新添加到 persistentStoreCoordinator 并添加/删除 NSPersistentStoreDidImportUbiquitousContentChangesNotification 观察者?使用同一个本地 SQLite 文件会有什么问题吗?

【问题讨论】:

【参考方案1】:

不,这还不够,您还需要对 NSPersistentStoreCoordinatorStoresWillChangeNotification 和 NSPersistentStoreCoordinatorStoresDidChangeNotification 做出反应。

您还需要反映您的功能,例如如果您有初始数据,则需要考虑将应用安装在第二台设备/对等设备上时发生了什么,以避免重复数据。

此外,您需要检查帐户是否更改,以及其他一些问题。

Apple https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013491-CH1-SW1 有一个非常好的文档,它很好地描述了需要考虑的内容。

【讨论】:

以上是关于iOS Core Data iCloud 同步 - 可选的主要内容,如果未能解决你的问题,请参考以下文章

在应用程序运行时启用/禁用 Core Data 的 iCloud 同步

Core Data iCloud 同步还是其他?

iCloud Core Data 在 Xcode 6 / ios 8 SDK 中运行后不可用

在 iOS 7 中禁用 Core Data 中的 iCloud(也就是将持久存储文件迁移到本地)

Core Data iCloud 同步图像

Core-Data 和 iCloud 限制每个实体的项目数 - 潜在的同步问题