是否可以在不替换的情况下以编程方式修改/更新 plist 文件?

Posted

技术标签:

【中文标题】是否可以在不替换的情况下以编程方式修改/更新 plist 文件?【英文标题】:Is it possible to modify/update the plist file programmatically without replacing it? 【发布时间】:2011-10-24 06:09:04 【问题描述】:

在我的应用程序中 我只想更改文件的部分内容。

为此,我在字典中获取 plist 文件。

修改字典,然后重写整个 plist 文件。

是否可以直接修改plist文件或者plist文件的部分内容。

【问题讨论】:

取决于 plist 是文本格式还是二进制格式。 请详细说明一下?谢谢。 【参考方案1】:

如果不重写整个文件,就无法修改 plist 文件。如果你的 plist 文件太大以至于重写整个文件需要很长时间,你应该考虑使用 SQLite 数据库,并可能采用 Core Data。

【讨论】:

【参考方案2】:

如果您在谈论 Info.plist 或捆绑包中的任何资源(即:在 MyApp.app 文件夹中),答案是否定的。 捆绑包中的文件是只读的。所以你不能覆盖它们。

如果您谈论的是可能位于 Documents 或 Cached 文件夹中的其他文件,那么答案是肯定的。

【讨论】:

是的如何?你能提供我如何修改plist中特定数据的代码(在文档目录中显示)。 您必须读取文件(使用 NSArray 和/或 NSDictionary 实例方法参见:iphoneexamples.com section Plist 文件)修改您想要的内容,然后再次写入整个文件。您可以严格修改文件,但这将是一项艰巨的任务(请参阅 NSFileHandle 文档)

以上是关于是否可以在不替换的情况下以编程方式修改/更新 plist 文件?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不通过 BscScan 的情况下以编程方式提取 BSC 交易详细信息吗?

在不活动的情况下以编程方式停止 AWS EC2

在不继承 UINavigationController 的情况下以编程方式更改 ViewController 的方向

如何在不执行 Queryable 的情况下以通用方式替换 Queryable<T> 中的列

如何在不使用命令的情况下以编程方式关闭/重启 linux 机器(运行时)

如何在不编码窗口状态的情况下以编程方式终止 NSApp?