如果我不想自动备份到iCloud,建议保存游戏数据的地方是什么?我正在使用NSUbiquitousKeyValueStore
用于iCloud,并且有更新的自定义逻辑
所以我不会让iCloud备份搞砸了。
根据我的理解:Library/Caches/
。
因为:Documents/
和Library/Preferences/
是iCloud的备份。
我说错了吗?
答案 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;