通过代码更新 plist 文件
Updating plist file via code
我已经在包中创建了一个 plist 文件,我正在尝试将用户信息更新到 plist 中。我知道我应该将 plist 文件从 bundle 复制到 document 目录,然后从那里编辑它,但我还有几个问题:
当我将plist文件复制到文档目录时,它是永久的吗?我的意思是,如果我关闭程序再打开它,我可以简单地编辑文档目录中的plist文件,对吗?
如果是这样,是否意味着我应该只在应用程序第一次启动时执行将plist文件复制到文档目录的代码?
/主要问题/既然我想要一个空白的 plist 文件供用户更新他们的数据,我是否应该在第一次启动时简单地创建一个 plist 文件?没有围绕捆绑包和东西进行复制会容易得多。
我的意思是,首先在包中创建一个 plist 文件有什么意义?我们无论如何都会将它复制到文档目录中,那么为什么不直接在代码中创建一个呢?
我不完全确定你想要实现什么,但你应该将 plist 视为全局常量的地方,而不是应该在运行时更新的东西。
也许你应该看看这个:
NSUserDefaults
是的。写入文件是永久性的,只要您显然不 delete/move 其他地方的文件。
这是一个有效的选项
是的。如果您需要一个空白文件,则不需要从捆绑包中获取它。一个更好的主意是在需要时创建它(当有东西要写时)。通常文件创建是这样管理的
- 检查文件是否存在
- 如果没有,创建它。
- 使用文件。
如果您需要一个模板文件(里面已经写了一些东西),那么从捆绑包中复制一份更合适。但即便如此,许多开发人员还是会喜欢从代码开始做所有事情,这并不是一项繁重的任务,它会迫使您 create/prepare get-go.[=10] 中的正确对象和方法=]
如 Rooe N 所说,NSUserDefaults 是一个 属性 列表,因此如果您谈论的是非常简单的数据,例如用户名和 last-time-I-logged-In-date,您可以将其存储在那里.
请注意,每次加载应用程序时,NSUserDefaults 都会一直加载,因此您不想将其用作数据库。但是由于您要使用 .plist,我假设您已经排除了 DB。
我已经在包中创建了一个 plist 文件,我正在尝试将用户信息更新到 plist 中。我知道我应该将 plist 文件从 bundle 复制到 document 目录,然后从那里编辑它,但我还有几个问题:
当我将plist文件复制到文档目录时,它是永久的吗?我的意思是,如果我关闭程序再打开它,我可以简单地编辑文档目录中的plist文件,对吗?
如果是这样,是否意味着我应该只在应用程序第一次启动时执行将plist文件复制到文档目录的代码?
/主要问题/既然我想要一个空白的 plist 文件供用户更新他们的数据,我是否应该在第一次启动时简单地创建一个 plist 文件?没有围绕捆绑包和东西进行复制会容易得多。
我的意思是,首先在包中创建一个 plist 文件有什么意义?我们无论如何都会将它复制到文档目录中,那么为什么不直接在代码中创建一个呢?
我不完全确定你想要实现什么,但你应该将 plist 视为全局常量的地方,而不是应该在运行时更新的东西。
也许你应该看看这个: NSUserDefaults
是的。写入文件是永久性的,只要您显然不 delete/move 其他地方的文件。
这是一个有效的选项
是的。如果您需要一个空白文件,则不需要从捆绑包中获取它。一个更好的主意是在需要时创建它(当有东西要写时)。通常文件创建是这样管理的
- 检查文件是否存在
- 如果没有,创建它。
- 使用文件。
如果您需要一个模板文件(里面已经写了一些东西),那么从捆绑包中复制一份更合适。但即便如此,许多开发人员还是会喜欢从代码开始做所有事情,这并不是一项繁重的任务,它会迫使您 create/prepare get-go.[=10] 中的正确对象和方法=]
如 Rooe N 所说,NSUserDefaults 是一个 属性 列表,因此如果您谈论的是非常简单的数据,例如用户名和 last-time-I-logged-In-date,您可以将其存储在那里.
请注意,每次加载应用程序时,NSUserDefaults 都会一直加载,因此您不想将其用作数据库。但是由于您要使用 .plist,我假设您已经排除了 DB。