gpt4 book ai didi

iphone - 我应该在哪里保存我想长期保存的数据和文件,以及如何防止 iCloud 备份它们

转载 作者:可可西里 更新时间:2023-11-01 03:06:02 25 4
gpt4 key购买 nike

我有文件 - 包括核心数据存储库在内的任意类型 - 我需要保留它们而不是让 iOS 删除它们。通常,我不希望 iCloud 备份这些文件。我应该将它们保存在哪里?

最佳答案

本地保存文件从 iOS5.0 及更早版本、5.0.1 和 5.1 及更新版本发生了变化,主要是为了解决 iCloud 备份问题。有两个 Apple 源文档(File System Programming GuideQA1719)共同提供支持以下内容的信息:

  • iOS 5.0

文件应保存在“Caches”目录中,因为如果它们存储在 Documents 文件夹中,则无法阻止备份。请注意,系统可能会删除这些文件(请参阅 QA1719),因此您需要能够根据需要重新创建每个文件。要查找缓存目录,请使用:

[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]
  • iOS 5.0.1

文件应保存在“/Library/Application Support”(FSP,第 15 页)中,可以通过以下方式更好地访问:

[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject]

我的经验是这个目录并不总是存在,因此您可能需要创建它:

- (NSString *)applicationAppSupportDirectory
{
return [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject];
}

NSFileManager *manager = [NSFileManager defaultManager];
NSString *appSupportDir = [self applicationAppSupportDirectory];
if(![manager fileExistsAtPath:appSupportDir]) {
__autoreleasing NSError *error;
BOOL ret = [manager createDirectoryAtPath:appSupportDir withIntermediateDirectories:NO attributes:nil error:&error];
if(!ret) {
NSLog(@"ERROR app support: %@", error);
exit(0);
}
}

保存到这个目录(或子目录)的文件需要一个扩展属性来告诉 iCloud 不要备份它们(参见 QA1719)。

PS:我还没有找到将Deployment target设置为这个版本的方法,如果有方法请留言。

  • iOS 5.1

文件(或文件文件夹)应位于如上所述的“应用程序支持”文件夹中。要防止 iCloud 备份使用:

[URL setResourceValue: [NSNumber numberWithBool: YES] forKey:NSURLIsExcludedFromBackupKey error:&error]

如 QA1719 中所述。请注意,您可以将此 key 应用于目录以防止其内容被备份。来自 QA1719 的完整方法:

- (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;
}

关于iphone - 我应该在哪里保存我想长期保存的数据和文件,以及如何防止 iCloud 备份它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12371321/

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