iCloud将Core Data与Ensembles同步

时间:2017-10-25 07:33:57

标签: swift core-data ensembles

我的计划是购买Ensembles 2(以利用速度/效率等)但我正在努力确保我能够首先使用它(在测试Swift项目中)。为此,我正在尝试使用v1。

使用Simple Sync with Swift作为指南我已将合奏合并到我的xcode项目中。

来自应用程序的数据似乎确实存储在iCloud中,就像我删除应用程序然后重新添加它一样,然后进行同步,然后同步会从iCloud恢复正确的数据。我的麻烦是用第二个设备(登录到相同的apple / iCloud帐户)进行测试会对自己的数据做同样的事情。来自2个设备的数据永远不会合并。但是,重新加载应用程序后,每个设备上创建的数据将恢复到自己的设备。

有谁知道这是怎么回事?

我想知道问题是否可能是我正在生成的商店网址。现在很多核心数据堆栈的设置都是在Swift 3+(NSPersistentContainer)中自动完成的,所以这些东西不需要由用户生成。以下是我在设置我的整体时为商店网址和模型网址生成变量的方法:

var storeDirectoryURL: URL {
        return try! FileManager.default.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    }

var storeURL: URL {

        return storeDirectoryURL.appendingPathComponent("VsSyncTest.sqlite")
    }

    // Setup Ensemble

let modelURL = Bundle.main.url(forResource: "VsSyncTest", withExtension: "momd")

1 个答案:

答案 0 :(得分:0)

我能想象的唯一方法就是使用不同的iCloud帐户,或者每个设备都有不同的集合标识符。

另请注意,iCloud文档共享可能很顽固。仅仅因为文件在本地添加到容器并不意味着它们会立即转移到其他设备。 (CloudKit后端在这方面要好得多,但仅限于E2。)

如果您正在使用模拟器进行测试,则使用Debug > iCloud > Trigger Sync in Simulator可能有所帮助。