iOS应用程序更新,如何更新捆绑包中的plist文件?

5
有没有办法通过iTunes应用程序更新来更新已修改的plist文件?
我有一个应用程序,将一些数据以数组和字典的形式存储在plist文件中。在某些更新中,我已经添加了更多的数组项到plist文件中,但似乎当应用程序更新时,新的plist文件不会被复制/更新,除非用户删除应用程序并重新安装它。
我该如何让应用程序使用新的plist文件更新本地副本?
3个回答

6

如果您想更新某些部分,那么您无法更新包含在束中的任何内容。如果您希望能够更新它,请将plist保存在文档目录中。

NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
        NSUserDomainMask, YES);
NSString *documentsDirectory = [arrayPaths objectAtIndex:0];

当使用商店更新应用程序时,文档目录中的文件不会被删除。


那么,如果我通过代码将更新后的plist文件移动到文档目录中,它会覆盖/更新任何已经存在的plist文件吗? - SMSidat
只有当存在同名文件并且您选择使用适当的NSFileManager方法覆盖它时,才会执行该操作。 - Wolfgang Schreurs

2
版本化的.plist文件?例如MyApp-YYYYMMdd.plist

1

我在一个应用程序中遇到了类似的问题。我解决这个问题的方法是,在应用程序代理接收到willEnterForeground通知时,检查应用程序是否已加载旧版或新版的plist文件,然后从捆绑包中加载新文件并将其保存到文档目录。


你是如何检查版本的? - SMSidat
在我的情况下,这很容易,因为文件中有基于日期的数据。 - onnoweb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接