iOS plist保存更新

时间:2013-01-14 02:26:59

标签: iphone ios xcode plist

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

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

另见:

iphone: preserve user data against app update

app data loss on version upgrade

答案 1 :(得分:1)

这取决于您对应用程序的编码方式......但是,如果您的应用程序设置为仅在当前没有plist时将plist加载到您的bundle中,而不应该覆盖它。

我今天发布了更新,我的plist数据仍在那里......

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

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

    [fileManager copyItemAtPath:bundle toPath: path error:&error];
}