2013-04-28 103 views
0

我已成功使用Plist在我的iPhone應用程序中讀取和寫入數據。 Plist由數組中的字典組成。當我想追加字典時,我使用writeToFile方法。這很好,但它覆蓋了整個Plist。有沒有方法可以添加到字典中,而無需閱讀整個Plist,然後再將整個Plist再返回?Plist writeToFile覆蓋整個plist

回答

1

皮特,如果我正確地理解你的問題,你應該做到以下幾點:

裝入plist文件在NSMutableArray。然後,當你想添加另一個字典,而不是直接保存(它當然會覆蓋...),你只需將這個字典添加到你現有的NSMutableArray,然後保存它。

NSMutableArray *arrayLoaded = <load here your plist> 
NSDictionary *dictionaryToAdd = <create your dictionary> 

[arrayLoaded addObject:dictionaryToAdd]; 
[arrayLoaded writeToFile:filePath]; 
+0

但是,當你保存arrayLoaded與writeToFile它會重寫整個Plist?我的Plist包含了很多NSData對象,如果我想更改Plist中的字典或字典中的某個字符串,我的應用程序會變慢。不幸的是我遠離我的Mac,但我會盡力回答你。 – pete 2013-04-28 10:46:18

+0

是的,它會重寫plist文件。我認爲它會保持NSData對象。否則,您可以嘗試將這些數據分開存儲在兩個不同的文件中。 – 2013-04-28 10:48:16

+0

我喜歡2 Plist的想法 - 我會放棄它。謝謝。 – pete 2013-04-28 11:13:37