2016-02-26 106 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

相關問題