gpt4 book ai didi

ios - 如何防止备份带有外部文件的 Core Data 数据库?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:11 24 4
gpt4 key购买 nike

我们有一个应用程序使用 Core Data 来存储数据。一些数据来自服务器,大小可变,虽然通常很小,但也可能很大(几兆字节)。我们使用启用了“允许外部存储”的二进制数据字段来存储此数据。

我们的应用因违反规则 2.23 而被拒绝,因为我们正在存储可以从服务器重新下载的数据,而不是将其标记为从备份中排除。

好吧,很公平,所以我想将我们的数据库标记为从备份中排除。标记数据库本身很容易:

    BOOL succ = [storeURL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
if (!succ) {
NSLog(@"Error setting %@ to be excluded from backups: %@", storeURL, error);
}

但这只涵盖了 SQLite 文件本身。当 Core Data 存储外部文件时,它会将它们存储在一个单独的目录中:

.../Private Documents/MyDatabase.sqlite
.../Private Documents/.MyDatabase_SUPPORT/_EXTERNAL_DATA/(files here)

我需要将外部存储的文件标记为不可备份。我可以在 .MyDatabase_SUPPORT 文件夹上设置 NSURLIsExcludedFromBackupKey,但我没有看到任何支持的方法来获取此文件夹的名称。

我可以自己构建它,但我不喜欢依赖这个实现细节。是否有任何受支持的方法来找出 Core Data 存储数据库外部文件的位置?

最佳答案

创建一个子目录,在该子目录中创建数据库,然后在该子目录上设置 NSURLIsExcludedFromBackupKey 属性。这样,子目录中的任何内容(包括隐藏的 SUPPORT 目录)都将从备份中排除。

关于ios - 如何防止备份带有外部文件的 Core Data 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com