2012-04-12 115 views
1

OK,所以我採取一個經典場景:NSArrayController的+ NSTableView的:自動保存更改而不核心數據

  • 一個NSPopupButton有一些項目在它
  • 當選擇的值發生變化,我itemsArray更新
  • itemsArray鏈接到NSArrayController
  • itemsArray每一項都是一種NSMutableDictionary(連鍵:titlecontent
  • 一種NSTableView顯示title S上的arrangedObjects(結合的)
  • 一種NSTextView顯示所選擇的項的content

現在,我想要的是自動保存itemsArray(或itemsArray的項目標題/內容)的任何更改,但沒有使用核心數據(我猜想可能是最好的方式去做)。

我想這是一個相當基本的問題這一個,但老實說,我從來沒有真正喜歡做的事情的可可的自動神奇的方式......所以,我需要你的幫助......

我應該如何去關於那個?

回答

1

你可以寫一個數組到一個文件很容易:

[yourArray writeToURL:someFileURL atomically:YES]; 

如果陣列中的所有內容都是屬性列表對象(即它們是NSNumberNSStringNSDictionaryNSArrayNSData對象這將工作)。你的例子就是這種情況。

然後,您可以使用任一arrayWithContentsOfURL:initWithContentsOfURL:方法重新創建數組當你從磁盤加載。

如果你的模型對象比一個數組更復雜,那麼你應該讓你的模型對象符合NSCoding協議。這意味着您需要實施initWithCoder:encodeWithCoder:方法。然後,您可以使用NSKeyedArchiverNSKeyedUnarchiver類的對象轉換爲和從NSData表示,你可以寫入到磁盤。

您應該閱讀Archives and Serialization Programming Guide瞭解更多詳細信息。

0

另一種解決方案可能是添加一個Shared User Defaults Controller控制器內容數組Array Controller結合Shared User Defaults Controller

相關問題