【问题标题】:Core data no icloud sync... again核心数据没有 icloud 同步...再次
【发布时间】:2021-12-08 14:22:15
【问题描述】:

大约 2 年前,我在这里 (Core data and iCloud sync not working in live App) 询问了我在 iCloud 上同步核心数据时遇到的问题。将架构部署到生产环境后,问题已得到解决。

到目前为止没有问题,但几个月前我注意到我的应用有时会同步,有时不会。

现在的问题是,根本不同步,在模拟器上工作正常,我打开 2 台设备,它们同步没有问题。

上线(从 AppStore 下载应用程序),使用 2 部 iPhone,同一个 iCloud 帐户,99% 的时间不会同步。

例如:

  1. 从两部 iPhone 上删除应用程序
  2. 从 AppStore 下载应用程序
  3. 应用程序加载已存储在 iCloud 上的记录,我可以在两部 iPhone 上看到相同的数据
  4. 在 iPhone A 上添加新记录,iPhone B 收到新数据... ok
  5. 在任何 iPhone 上添加第二条记录,但什么都没有,从这里开始,没有 新数据已同步
  6. 要查看第 4 步中的数据是否已保存在 iCloud 上,请再次从两部手机中删除应用程序并重新开始,在第 3 步中,数据已加载,但第 4 步中的新记录丢失。

有什么想法吗?

AppDelegate.swift

lazy var persistentContainer: NSPersistentCloudKitContainer = {
    let container = NSPersistentCloudKitContainer(name: "whatever")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {
            
            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
    })
    container.viewContext.automaticallyMergesChangesFromParent = true
    container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
    return container
}()

func saveContext () {
    let context = persistentContainer.viewContext
    if context.hasChanges {
        do {
            try context.save()
        } catch {
            let nserror = error as NSError
            fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
        }
    }
}

【问题讨论】:

标签: swift core-data icloud cloudkit


【解决方案1】:

发现问题...

我无意中在数据模型中创建了第二个配置,删除它解决了问题,iCloud 再次同步没有任何问题。

【讨论】:

    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2014-04-10
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多