0

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

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

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

有谁知道这怎么可能?

我想知道问题是否可能是我正在生成的商店网址。许多核心数据堆栈设置现在在 Swift 3+ (NSPersistentContainer) 中自动完成,因此这些东西不需要由用户生成。这是我在设置我的集合时如何生成商店 url 和模型 url 的变量:

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")
4

1 回答 1

0

我能想象到的唯一方法是,如果您使用不同的 iCloud 帐户,或者您为每个设备使用不同的集合标识符。

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

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

于 2017-10-26T08:53:24.143 回答