我们有一个带有 Core Data 的应用程序,后备存储是一个 SQLite 数据库。
它包含关键数据(即它需要始终离线可用)。
它当前存储在 Documents 目录中,因此由于 iOS 数据存储指南而被拒绝。
解决方案似乎是使用“不备份”标签对其进行标记。
但是,我还没有看到任何关于这方面的指导方针。即我应该手动将此文件标记为“不备份”还是应该启用一些核心数据选项?
在 iOS 5.1 或更高版本中,最好使用 newNSURLIsExcludedFromBackupKey
或kCFURLIsExcludedFromBackupKey
file 属性,而不是setxattr
(iOS 5.0.1 compatible)。
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]); NSError *error = nil; BOOL 成功 = [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey 错误:&错误]; 如果(!成功){ NSLog(@"从备份 %@ 中排除 %@ 的错误", [URL lastPathComponent], error); } 返回成功; }
有关详细信息,请参阅iOS 应用程序编程指南的“应用程序备份最佳实践”部分。