如何在更新 iphone 应用程序时从库目录中保留用户数据?

Posted

技术标签:

【中文标题】如何在更新 iphone 应用程序时从库目录中保留用户数据?【英文标题】:How to preserve user data from library directory on updating the iphone app? 【发布时间】:2011-06-30 07:13:24 【问题描述】:

根据 Apple 的 ios 应用程序编程指南,应用程序保留 documentslibrary 目录。我的问题是库目录到底保留了什么?它是复制用户创建的文件/数据(如果存储在库目录中)还是只保留 首选项 和应用程序设置?

我的应用当前将用户数据存储在库目录中,用户在更新到新版本时丢失了数据。我不想再发生这种事了。

【问题讨论】:

【参考方案1】:

用户创建的文件和数据应存储在文档文件夹中。该文件夹中的内容也使用 iTunes 备份。

【讨论】:

【参考方案2】:

您不仅应该将用户数据保存在文档目录中。

/**
 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)

【讨论】:

以上是关于如何在更新 iphone 应用程序时从库目录中保留用户数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在后台应用程序时从 JavaScript 发出通知/警报 - PhoneGap iPhone/iOS

iPhone:如何获取从库中选择的视频时长?

iPhone UIImage - 数据持久性

如何在按下按钮时从UITextField更新标签

如何获取从 iPhone 库中选择的多个图像的路径?

如何在 iPhone / iPad 的应用程序中正确使用保留和释放