如何阻止核心数据同步到 iCloud

Posted

技术标签:

【中文标题】如何阻止核心数据同步到 iCloud【英文标题】:How to stop core data from syncing to iCloud 【发布时间】:2014-06-11 13:10:57 【问题描述】:

我有一个将图像存储在文档中的应用程序。我可以通过使用停止应用程序将图像同步到 iCloud

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL

    assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);

    NSError *error = nil;
    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
                                  forKey: NSURLIsExcludedFromBackupKey error: &error];
    if(!success)
        NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
    
    return success;

我也需要停止与 iCloud 的核心数据同步,有人可以解释或提供如何执行此操作的代码

【问题讨论】:

我认为没有简单的方法可以做到这一点。问题是两种情况下数据库的容器路径不同,您不能只删除“使用 iCloud 同步”初始化并继续离线工作。每次您希望开始或停止同步时,都需要迁移数据库(在一个方向或另一个方向)。 【参考方案1】:

没有快速简便的方法可以做到这一点。一种方法是使用 UUID 识别每台设备的核心数据中的每条记录,然后每次连接到 iCloud 商店或从 iCloud 获取更新时,检查是否存在任何重复项,然后将其删除。为此,您必须使用自己的算法。

【讨论】:

以上是关于如何阻止核心数据同步到 iCloud的主要内容,如果未能解决你的问题,请参考以下文章

iOS7.0防止数据库(核心数据)同步到iCloud和备份到iTunes

如何控制 iCloud 何时同步我的核心数据?

我如何在 iCloud 中同步核心数据?(OS X Lion 应用程序)

使用 iCloud 进行核心数据同步

将 sqlite 数据库与 iCloud 同步

是否有可能推断上一次本地核心数据存储完全同步到 iCloud 的时间?