无需iCloud支持即可保存iOS游戏数据的推荐位置

时间:2014-04-09 08:21:43

标签: ios icloud

如果我不想自动备份到iCloud,建议保存游戏数据的地方是什么?我正在使用NSUbiquitousKeyValueStore用于iCloud,并且有更新的自定义逻辑 所以我不会让iCloud备份搞砸了。

根据我的理解:Library/Caches/

因为:Documents/Library/Preferences/是iCloud的备份。

我说错了吗?

2 个答案:

答案 0 :(得分:3)

您不应该使用/Library/Cache来存储此类信息。看看Apple Data Storage Guidelines说的是什么:

  

可以存储可以再次下载或重新生成的数据   / Library / Caches目录。

您可以将所有数据保存到/Documents,只需将其标记为不会复制到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;
}

您可以在AppDelegate中或在创建这些文件的任何位置使用此方法。请注意,您不仅可以从iCloud备份中排除特定文件,还可以排除目录。

答案 1 :(得分:1)

您还可以将特定游戏数据排除在执行备份到iCloud之外。

NSURL *url = [NSURL fileURLWithPath:fileName];
assert([[NSFileManager defaultManager] fileExistsAtPath:fileName]);

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;