设置不备份标志后,iCloud中的应用程序大小不会改变

时间:2013-06-20 18:56:23

标签: ios backup

我发现了几个类似的问题: link1 link2

我添加了link2中描述的代码: 我在图片下载和保存到目录后调用此方法。

-(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL {
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);

if (&NSURLIsExcludedFromBackupKey == NULL) {
    // Use iOS 5.0.1 mechanism

    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);
    return result == 0;
}
else {
    // Use NSURLIsExcludedFromBackupKey mechanism, iOS 5.1+
    NSError *error = nil;
    BOOL success = [URL setResourceValue:[NSNumber numberWithBool:YES]
                                  forKey:NSURLIsExcludedFromBackupKey
                                   error:&error];
    if(!success) {
        NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
    }
    else {
        NSLog(@"Path is %@:", [URL path]);
    }
    //Check your error and take appropriate action
    return success;
}

}

在登录iCloud时,应用程序的大小仍为50.7 Mb(我正在使用5.1.1 iOS版本在iPhone上测试),因此使用flag没有任何效果,尽管成功的值为“YES”。 请告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题在于制作文件路径的URL的方法。目前我已经改为+ fileURLWithPath:isDirectory:一切都很好。我在iCloud存储中的应用程序大小显示为0.9KB(通常为50.7Mb)。