通过代码更新plist文件

时间:2016-01-06 14:35:27

标签: ios plist

我在捆绑包中创建了一个plist文件,我正在尝试将用户的信息更新到plist中。我知道我应该将plist文件从bundle复制到文档目录,并从那里进行编辑,但我还有几个问题:

  1. 当我将plist文件复制到文档目录时,它是永久性的吗?我的意思是,如果我关闭程序并再次打开它,我可以简单地编辑文档目录中的plist文件,对吗?
  2. 如果是这样,是否意味着我应该只在第一次启动应用程序时执行将plist文件复制到文档目录的代码?
  3. /主要问题/由于我想要一个空白的plist文件供用户更新其数据,我应该只是在第一次启动时创建一个plist文件吗?如果没有复制捆绑包和东西,这将会轻松得多。

    我的意思是,首先在捆绑中创建一个plist文件有什么意义?我们无论如何都会将它复制到文档目录中,那么为什么不在代码中创建一个呢?

2 个答案:

答案 0 :(得分:1)

  1. 是。写文件是永久性的,只要您显然不会在其他地方删除/移动文件。

  2. 这是一个有效的选项

  3. 是。如果您需要一个空白文件,则不需要它。更好的想法是在需要时创建它(当有东西要写的时候)。通常文件创建是这样管理的

    • 检查文件是否存在
    • 如果没有,请创建它。
    • 使用该文件。
  4. 如果你需要一个模板文件(已经写了一些东西),那么捆绑包中的副本更合适。但即便如此,许多开发人员都希望从代码中完成所有工作,而不是那么繁重的任务,它会迫使您从一开始就创建/准备正确的对象和方法。

    就像Rooe N说的那样,NSUserDefaults是一个属性列表,所以如果你在谈论非常简单的数据,比如用户名和最后一次登录的日期,你可以存储它在那里。

    请注意,每次加载应用程序时都会加载NSUserDefaults,因此您不希望将其用作数据库。但是既然你要去.plist,我会假设你已经统治了DB。

答案 1 :(得分:-2)

我不完全确定你想要实现的目标,但你应该将plist视为全局常量的地方而不是应该在运行时更新的地方。

也许你应该看看这个: NSUserDefaults