0

我有一个由 iCloud 支持的 CoreData 应用程序(使用https://github.com/lhunath/UbiquityStoreManager)。在一个用例中,具有本地存储的用户启用 iCloud(其中数据已经存在)。我想提示用户决定是将本地数据迁移到 iCloud 还是只使用 iCloud 版本。作为其中的一部分,我想在 iCloud 中显示版本的设备名称和上次同步日期。

我一直在修改我的 NSPersistentStore 的元数据,但这似乎没有同步到 iCloud。

有什么建议么?

4

3 回答 3

0

毫无疑问,我不受欢迎的建议是“不要”。试图在任何给定时间确定 iCloud 中的内容会使您处于非常不稳定的境地。您可能大部分时间都能让它工作,但总会有它发生故障的情况。

如果您确实必须在首次启用 iCloud 时导入一些数据,我建议始终导入数据,然后在 iCloud 数据进入时进行重复数据删除。尽管听起来很难看,但这是唯一能保证与 Apple 方法一起使用的方法。

值得看看其他核心数据同步框架,如 TICDS 和 Ensembles。他们对数据身份采取了一种更理智的方法,这意味着您可以避免整个重复数据删除步骤。(披露:我开发合奏)

于 2014-02-14T13:41:50.693 回答
0

您可以使用 iCloud 的键值存储来存储设备名称和上次同步的日期。

于 2014-02-13T21:45:05.923 回答
0

对 iCloud 文件进行元数据查询并检查 iCloud 中最新的事务日志文件。有关使用此方法检查应用程序是否与 iCloud 正确同步的示例应用程序,请参阅下面的链接。
http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/

编辑:我刚刚意识到我没有得到实际的设备名称,但是一旦你找到了最新的日志文件,然后使用它来获取设备。请注意,此电话可能很昂贵。

NSFileVersion *openedVersion = [NSFileVersion currentVersionOfItemAtURL:fileURL];
    return openedVersion.localizedNameOfSavingComputer;
于 2014-02-14T04:08:15.757 回答