【发布时间】:2011-06-30 07:13:24
【问题描述】:
根据 Apple 的 iOS 应用程序编程指南,应用程序保留 documents 和 library 目录。我的问题是库目录到底保留了什么?它是复制用户创建的文件/数据(如果存储在库目录中)还是只保留 首选项 和应用程序设置?
我的应用当前将用户数据存储在库目录中,用户在更新到新版本时丢失了数据。我不想再发生这种事了。
【问题讨论】:
根据 Apple 的 iOS 应用程序编程指南,应用程序保留 documents 和 library 目录。我的问题是库目录到底保留了什么?它是复制用户创建的文件/数据(如果存储在库目录中)还是只保留 首选项 和应用程序设置?
我的应用当前将用户数据存储在库目录中,用户在更新到新版本时丢失了数据。我不想再发生这种事了。
【问题讨论】:
用户创建的文件和数据应存储在文档文件夹中。该文件夹中的内容也使用 iTunes 备份。
【讨论】:
您不仅应该将用户数据保存在文档目录中。
/**
Returns the path to the application's Documents directory.
*/
- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
但您也应该只存储位于该目录中的文件的相对路径。如果您存储绝对路径,则您的应用在更新后将找不到数据。
First App Update, User Data Lost (was stored in Documents directory)
【讨论】: