2011-09-16 2 views
1

いくつかのXMLデータをダウンロードして解析し、sqliteに格納する必要があります。次に、そのデータをテーブルビューで表示する必要があります。私は、そのデータをさらに提示する最も効果的な方法を理解しようとしています。フォームsqliteを使って、それも検索を使用するテーブルビューに使用します。したがって、私はそのデータをsqliteの "ソース"からいくつかの "テーブルデータ"プロパティにコピーする必要があります。だから、2つの一般的な方法は以下のとおりです。UITableViewControllerでセクションを実装する2つの異なる方法の長所と短所は何ですか?

  1. (例えばNSStringのタイプ)セクション名が含まれている1つのNSArrayのプロパティを持ち、キーが最初に含まれているセクション名であることを(行を格納するための)NSDictionaryの性質を持っていますNSArray。

  2. ネストされたNSArrayプロパティ(行列)を1つだけ持つ:NSArrayにはNSArraysである要素が含まれ、NSArray内の各要素はNSDictionaryのCustomClassの型です。私は私が取るべき道不思議と何だ

  3. 他の方法は、してください....

は、これら二つの(そしておそらく他)の方法の長所と短所があります。あなたの経験と洞察を共有してください。

答えて

1

Core Dataを使用してデータを保存してみませんか? NSPeristentStoreCoordinatorのストアタイプがNSSQLiteStoreTypeの場合、バックエンドとしてsqliteを使用します。それに精通していない場合は、新規プロジェクトを作成し、作成時にコアデータを使用にチェックマークを付けます。あなたはそれを学ぶのに少し時間を費やす必要がありますが、それはそれだけの価値があります。保存、検索、フィルタリング、並べ替え、テーブルビューでの表示などがあります。

+0

はい、確かに別の方法です(+1)。私の状況について言えば、私は、データの量が少ない(200レコード未満)ため、不要な複雑さとパフォーマンスの低下を招く重量データフレームワークとしてCore Dataを考えています。 – Centurion

+0

OKセンス。この場合、私はオプション#3を使用します。セクションの配列。各セクションは、名前などのプロパティや行の配列などのプロパティを含むクラスです。行は、特定のプロパティを持つクラスです。セクションと行クラスはNSKeyedArchiverで配列全体をシリアライズし、ファイルに保存して復元できるように、NSCodingを実装する必要があります。また、行の辞書を使用することもできますが、カスタムクラスを使用するとさらに多くの手間がかかります。私見では。 – Davyd

+0

考えを共有してくれてありがとう:)セクションと行を入れ子にしているので、あなたの提案は私の#2オプションに近いです。このアプローチでは、2つの異なる配列を持つよりもはっきりしています。ちょうど私が#1オプションを使用することを提案するインターネット上のいくつかのポストを見たので、それを尋ねた。 – Centurion