2011-11-04 46 views
0

我使用自定義對象數組替換了NSMutableDictionary對象數組。每個實例都有15個左右的實例變量,需要堅持,還有一些實例變量是暫時的。使用自定義對象數組而不是字典來重現writeToURL/initWithContentsOfURL行爲

我以前用-initWithContentsOfURL:-writeToURL:來讀寫這些。

用新的數據結構生成同一個plist文件的最好方法是什麼?

看起來好像一種保存方法是重新創建一個等效字典的數組,並呼籲-writeToURL:,反之亦然加載。我想知道是否有一種簡單的方法可以做到這一點,或者是一種更簡單更直接的方法。

回答

1

我經常發現,最簡便的方法是從自定義對象樹創建NSMutableDictionaries樹並對其進行存檔。顯然這有內存和CPU的開銷,並不像實現skidr0w所提示的NSCoding那麼好,但正如我所說的那樣,它有時更快更簡單。

+0

雖然不雅,但確實是快速和容易的。 – paulmelnikow

1

你可以在你的類中實現NSCoding協議,將你的類的一個實例歸檔到磁盤上。

+0

你能給這個代碼示例嗎? – paulmelnikow

+0

@noa關於使用NSCoding有一個[關於raywenderlich.com的很好的教程](http://www.raywenderlich.com/1914/how-to-save-your-app-data-with-nscoding-and-nsfilemanager)協議來實現對象序列化 – skidr0w

相關問題