2016-02-26 90 views
3

刚开始,我真的不知道我在做什么。我被授予了这个实习的任务,而且我正在学习。我有多个plist文件,它们每个包含大约22个项目,并且列出颜色值。我需要将所有这些文件合并为一个,我真的不知道如何去做。我有一个特定的结构,我需要经过,真的我不知道如何去做。我被告知要在texteditor中打开plists,然后将所有原始代码粘贴到一个文本文件中,这似乎不起作用,因为我只能得到我粘贴到文本文件中的第一个plist的值。你能帮忙的话,我会很高兴。谢谢。如何将多个plist文件合并为一个?

+0

看看'NSPropertyListSerialization'。该类可以将属性列表文件转换为Foundation集合类型,反之亦然。 – vadian

回答

1

有很多方法可以解决这个问题。默认情况下,plist是XML文件的特殊形式。如果你弄清楚实际上可以使用文本编辑器将多个文件的内容合并到一起的语法,但是你需要确保你正确地做到了。

plist文件具有整个文件的特定标题。你不能复制/粘贴多个plists在一起,因为那样他们会重复这个标题。

接下来的方法是以编程方式。如果你能弄清楚这些文件包含的外部集合的类型(可能是一个数组或字典),那么你可以写几行代码作为数组读取每一个plists,使用NSArray代码将它们结合起来(假设它们包含数组的颜色),然后将组合的阵列保存回新的plist。正如vadian所说,您也可以使用NSPropertyListSerialization类。这是处理plist文件的更普遍的方式,但它也更复杂,更难以弄清楚。

第三种方法是在Xcode中。如果你右键点击一个plist文件并选择“在Xcode中打开”,它应该给你Xcode的属性列表编辑器。然后,您可以将文件的内容复制并粘贴在一起,并将结果保存到新文件中。

+0

感谢您的回答!对于我来说,将源代码复制并粘贴到我的结构中,该结构的效果最好!看看我的答案。 – thatsnifty

+0

如果我回答你的问题,你应该接受答案。 Upvotes也受到感谢。 –

0

我想通了!首先创建结构,或使用给予您的模板。我建议在Xcode中打开这个模板/结构,因为它更容易在查看列表作为plist和源代码之间切换。作为源代码打开您的模板。然后在文本编辑器中打开每个plists,并将您的plists中的代码复制并粘贴到模板源代码的相应区域,然后您可以在Xcode中将其作为属性列表查看,以确保其正确。你唯一需要小心的事情就是确保你没有错误。否则,这工作伟大!

+0

编辑原始XML文件更容易出错。以这种方式获得格式化问题更容易。 Xcode更安全,因为它处理数据结构(数组,字典,字符串,整数,日期等),并且不会让您创建格式错误的文件。如果Xcode允许您按住Shift并点击并选择一系列内容,那么这将成为实现这一目标的最佳方式,但事实并非如此。 –

6

假设你from.plist包含键1, 2to.plist包含2, 3

运行以下命令:

/usr/libexec/PlistBuddy -x -c "Merge from.plist" to.plist 

to.plist将包含1, 2, 3

相关问题