2012-04-12 6 views
1

OKを保存するので、私は古典的なシナリオを実装しています:、私のitemsArrayが更新され、その中にいくつかの項目でNSArrayControllerは+ NSTableView:自動的にコアデータなしに変更に

  • NSPopupButton
  • すると、選択した値の変更
  • itemsArrayitemsArrayの各項目NSArrayController
  • に連結されているキーでNSMutableDictionary(ある:titlecontent
  • NSTableView表示結合arrangedObjects(のtitle S)
  • NSTextViewディスプレイ選択された項目のcontent

ここで、ItemsArray(またはItemsArrayのアイテムのタイトル/コンテンツ)の変更を自動的に保存することができますが、Core Dataを使用することはありません。

どのように私は行くべき

私は、それはこの1つは非常に基本的な質問です想像し、正直なところ、私は本当に...物事のココアの自動魔法の方法のように、私はあなたの助けを必要としたことがありません...

そのことについて?

答えて

1

あなたは非常に簡単にファイルに配列を書き込むことができます。

[yourArray writeToURL:someFileURL atomically:YES]; 

を、配列のすべての内容は、プロパティリストオブジェクトである場合、これは動作します(すなわち、それらはNSNumberNSStringNSDictionaryNSArrayまたはNSDataオブジェクトであります)。これはあなたの例の場合です。

ディスクからロードするときにarrayWithContentsOfURL:またはinitWithContentsOfURL:のいずれかの方法を使用してアレイを再作成できます。

モデルオブジェクトが単なる配列より複雑な場合は、モデルオブジェクトをNSCodingプロトコルに準拠させる必要があります。つまり、initWithCoder:encodeWithCoder:メソッドを実装する必要があります。次に、NSKeyedArchiverおよびNSKeyedUnarchiverクラスを使用して、オブジェクトをディスクに書き込むことができるNSData表現との間で変換することができます。

詳細については、Archives and Serialization Programming Guideをお読みください。

0

別の解決策は、Shared User Defaults Controller

Shared User Defaults Controllerを追加し、 Array Controllerから コントローラーコンテンツアレイをバインドするかもしれません