0

我的应用程序中有一个 plist,它已经在 appstore 中。用户可以在该 plist 中进行保存/更改。它存储在应用程序的 Documents 文件夹中。

如果用户更新到新版本,这个 plist 是否会保留,或者它是否恢复为默认值(应用程序包中发送的内容)?

提前致谢。

4

2 回答 2

2

Documents 中用户更新的 plist 应该是安全的:应用程序包中的数据(例如资源路径)会被覆盖,但用户的 Documents 和 Library 文件夹中的数据不会。这就是为什么您可以更新应用程序并保持您的文档和首选项完好无损的原因。

请注意,使用标准 iOS 调用来获取 Document 文件夹的路径很重要,而不是(例如)对路径进行硬编码。

也可以看看:

iphone:保留用户数据以防止应用更新

版本升级时应用程序数据丢失

于 2013-01-14T04:00:49.890 回答
1

这取决于您如何编写应用程序...但是如果您的应用程序设置为仅在当前没有 plist 时将 plist 加载到您的包中,则不应覆盖它。

我今天有更新,我的 plist 数据仍然存在......

这是用户第一次启动应用程序时应将 plist 从资源文件夹复制到包中的方式:(*注意,如果用户删除应用程序然后下载更新,则数据将消失)

if (![fileManager fileExistsAtPath: path]) {
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"YourPLIST" ofType:@"plist"];

    [fileManager copyItemAtPath:bundle toPath: path error:&error];
}
于 2013-01-14T04:01:23.023 回答