【发布时间】:2014-08-28 00:14:28
【问题描述】:
我有使用 iCloud 和 CoreData(相同容器)的应用程序(iOS 和 Mac)。每个设备都可以创建或更新数据。当设备创建或更新托管对象时,其他设备最终需要执行与托管对象相关的特定操作(与 UI 无关)。
例如,
- 设备 1 离线,
- 设备 2 在线并更改了托管对象。
- 稍后,设备 1 上线:它必须识别已创建和更新的托管对象才能执行某些操作。
我的问题:我可以依靠通知系统来实现吗? (NSPersistentStoreCoordinatorStoresDidChangeNotification 和 NSPersistentStoreDidImportUbiquitousContentChangesNotification)
依赖通知意味着我必须确定当数据发生变化时,通知最终会到达每台设备上的我的应用程序。 特别是,本地存储上的数据同步是否仅在应用程序运行时执行(从而希望确保如果应用程序注册得足够快,通知将到达应用程序)?
或者是否应该使用我自己的机制来实现这种类型的要求,以识别商店中的修改? (这会使模型复杂化,因为每个设备都必须知道它已经处理了对特定托管对象的更新)
编辑:看到这句话here:
在首次设置后和在您的应用运行时,Core Data 导入更改从其他对等方持续到 iCloud。
这告诉我通知是可靠的。
【问题讨论】:
标签: ios macos core-data icloud