2013-01-14 71 views
0

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

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

在此先感谢。

回答

1

这取决于你如何编码的应用程序......但是,如果你的应用程序设置为当有plist中只加载到你的包目前不是一个plist,而不应该被覆盖。

我已经更新今天走出来,我的plist数据仍然存在......

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

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

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

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

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

参见:

iphone: preserve user data against app update

app data loss on version upgrade