2011-02-09 4 views

答えて

2

shreyasvaによって与えられた答えは近いが、やや誤解を招く。

最初に、XMLを簡単に管理されたCocoaデータ構造に解析することは完全に正しいです。パフォーマンス上の理由から、テーブルのデータソースをXMLに直接関連付けるべきではありません。 yan.kunの提案は確かに可能ですが、「少し以上」のデータがあれば、パフォーマンスの問題にうまく対処できます。私は非常に長いデータセットのNSDictionaryオブジェクトのNSArrayにデータを解析することを強くお勧めします。あなたには、いくつかの他の方法で、またはあなただけのオブジェクトの一握りを持っている場合は、XML文書を永続化する予定がない場合

第二に、Core Dataは少しやり過ぎです。過度の打撃を受ける正当な理由がなくても、アプリケーションのすべてのデータ構造をコアデータに分割する必要はありません(しばしば妥当ではありません)。 NSDictionaryインスタンスは、テーブルビューで消費するために解析されたデータをキャッシュするのにうまく機能します。

第3に、-tableView:cellForRowAtIndexPath:メソッドがありません。これは、NSTableViewとUITableViewを混同しているようです。 Macタグを指定したので、NSTableViewDataSourceプロトコルを調べてください。 Cocoa Bindingsは、データソースプロトコルの「より良い」または「置き換え」ではありません。それは「代替」です。あなたは(たとえば、辞書の配列、「記録」に1つ)NSArrayControllerはにあなた解析されたデータをロードし、それにテーブルの列をバインド(各列は、アレイコントローラのarrangedObjects内の辞書内のキーにバインドされている)、またはどちらかただ起動して実行するために文字通りのドキュメントからのコピー/ペーストの2分かかります(簡単に)テーブルのデータソースプロトコルを使用しています。

0

病気はあなたにアーキテクチャの考えを与えます。

  • 一般的なXMLパーサーを使用してXMLを解析します。NSXMLParserは問題ありません。
  • コアデータオブジェクトを使用してデータを格納します。データがあまり多くない場合は、メモリに保持します。あなただけの編集機能せず、内容を一覧表示したい場合はtableView:cellForRowAtIndexPath:
0

  • のデータのロードはまた、あなたがNSXMLDocumentにXMLを読み込むとXPathを経由してテーブルビューをバインドすることができます。

  • 関連する問題