0

我的应用程序有我保存在文档目录中的可下载内容。哪个备份在 iCloud 上。因此,我可以将它们放在文档侧的一个目录下,然后在该目录上设置“不备份”,而不是设置所有单个文件的“不备份”,这行得通吗?还是我必须在所有单个文件上设置标志。

4

3 回答 3

1

在将数据库保存到文档目录之前,在您的应用程序中使用以下代码。

-(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    const char* filePath = [[URL path] fileSystemRepresentation];

    const char* attrName = "com.apple.MobileBackup";
    u_int8_t attrValue = 1;

    int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);

//  NSLog(@"Attributs : %d and Path : %@",result,URL);
    if (result != 0) { 

        NSLog(@"File Backup Attribute setting error");

    }

    return result == 0;
}
于 2013-05-30T10:10:45.483 回答
0

您可以将所有临时文件或您的程序无需用户帮助即可生成的任何其他数据存储在 Library/tmp 文件夹(不是用户创建的数据)中 - Library/tmp 文件夹不是内部文件夹,其文件夹位于同一级别的文档目录。

然后,您不需要为所有文件添加 donotbackup 属性。

谢谢!

于 2013-05-30T13:17:51.783 回答
0

这也发生在我身上。阅读此苹果存储指南

简而言之,您的应用程序要遵循准则 #2

可以再次下载或重新生成的数据应存储在 /Library/Caches 目录中。您应该放在 Caches 目录中的文件示例包括数据库缓存文件和可下载内容,例如杂志、报纸和地图应用程序使用的内容。

于 2013-05-30T13:51:09.653 回答