ios - Core Data 没有从 iCloud 下载所有数据

标签 ios macos core-data sync icloud

我已经在我的一个项目中使用 Core Data 大约 6 个月了,一切正常,直到前几天一位用户报告说她的 iOS 设备中的一些数据没有同步到她的 Mac 上.

当我检查出来时,一些 NSManagedObjects 似乎没有被 Mac 导入,尽管它们似乎已经被 iOS 设备上传到 iCloud。

我设法通过从 iCloud 重建持久存储来解决这个问题,方法是在将启用 iCloud 的持久存储添加到持久存储协调器。

我想知道这是否是一个已知问题,是否可以预防?不幸的是,我没有任何错误报告。

最佳答案

我有同样的问题并通过删除 persistentStore 并在应用程序运行时再次添加它来解决它。 在第一个设备上进行多次更改时总是出现同样的问题,第二个设备没有得到所有的更改。 当 applicationDidBecomeActive 首先删除持久存储时,我使用以下代码:

var storeCoordinator:NSPersistentStoreCoordinator = persistentStoreCoordinator!
        var store:NSPersistentStore = storeCoordinator.persistentStores[0] as! NSPersistentStore
        var storeURL:NSURL = store.URL!
        storeCoordinator.removePersistentStore(store, error: nil)
        NSFileManager.defaultManager().removeItemAtPath(storeURL.path!, error: nil)

接下来我继续添加 persistentStore。然后我收到了所有通知,因为这是安装后的第一次运行,但同步了完整数据。它总是有效,但我不知道这是否是处理问题的正确方法。

我相信在第一个设备中所做的所有更改总是会到达第二个设备,但由于某些奇怪的原因,它们不会与本地核心数据完全合并。 我对 iCloud-CoreData 问题做了一些奇怪的观察: https://stackoverflow.com/questions/32084952/core-data-to-icloud-doesnt-sync-all-changes][1]

希望对你有帮助。

关于ios - Core Data 没有从 iCloud 下载所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29606649/

相关文章:

ios - 运行时遇到错误(域 = LaunchServicesError,代码 = 0)

iphone - 自定义 UITableViewCell 中按钮上的 IBAction

ios - UILabels垂直拥抱优先级

c++ - 使用 Xcode 在 Mac 上构建 Boost

iphone - 为什么 NSFetchedResultsController 没有用新数据更新?

ios - 这个NSFetchRequest有什么问题?

iOS Swift 相同的代码在 iPad 和 iPhone 上运行时会产生不同的日期格式

javascript - 如何关闭 html5 颜色选择器?

macos - 检查 cocoa 应用程序中的互联网连接

iphone - 核心数据:如何使用NSPredicate查找空字段