2011-11-15 5 views
0

私は本当に迷っています。過去2週間私はデータが解析され、表示され、アプリケーションに保持される方法を調整しています。私の解析データを保持するためにコアデータを使用するのに助けが必要

私は2つのビューコントローラを持っていますが、最初は4つのテーブルがあり、選択するとxmlファイルから解析されたデータで完全なuitableviewをロードします。各xmlファイルは異なっていますが、お互いに関連するキーフィールドがあります。私はすべての製造元にavalibleあらゆる単一のmodalに対して私のManufactureIDをチェックするときに私は2番目の検索を行うように私はこのデータをuitableviewで表示する方法をスピードアップする必要があります..それは負荷のconsidrible量の時間がかかります。

私はビューがロードしようとする前にシーンの背後でこれを行いたいと思います。これを達成するための最良の方法はコアデータを使用すると聞いていますが、これをどのように動作させるかはわかりません私は今やっていることをやっている。

私に助けになるかもしれない事例や提案があれば、私は真剣に誰かの入力を真剣に受け入れることができます。例えば、私の.xmlファイルにあるデータをcoredataにどうやって取得するのですか?リレーションシップIDの作成方法は?

答えて

1

まず、情報をXMLファイルに保存する理由はありますか?起動時にすべてをメモリ内のストアにパース/プリロードするのではなく、最初からCoreDataデータストアにすべて移動するだけで、すべてが簡単に(しかも高速に)実行できます。

関係をモデル化する方法については、CoreDataモデルをXMLデータと完全に一致するように設定することができます。つまり、1つのファイルにつき1つのエンティティと、そのファイルの1レコードにつき1つの属性。 があり、CoreData Relationshipsを使用してXMLの関係をモデル化する必要はありません。ファイルにIDがすでにある場合は、xmlIdなどの属性を作成し、SQLクエリを実行しているのと同じようにフェッチします。あなたはCoreDataの自動ORM-nessの多くを見逃していましたが、これまでずっとXMLを扱っていれば、気づくことはありません。

CoreDataで管理されるオブジェクト間の関係を実際に設定したい場合は、CoreDataにIDをインポートしてから、またはIDでオブジェクトをIDでインポートする必要があります。あなたが解析するときに何とかこれを世話します。あなたのデータがどのようにモデル化されているかについて詳しく知ることなく、ここで具体的な助言を与えるのは難しいです。

XMLはメモリ内のCoreDataストアに読み込まれますが、リレーションシップはモデル化されません。 TopSongs(http://developer.apple.com/library/ios/#samplecode/TopSongs)

+0

よく調べると、xmlの投与量の変化(1年に数回)があります。 XMLにフィールドがあり、データベースが更新されているかどうかを確認できます。しかし、はい、私は、データベースの初期クエリを実行して、すべてのXMLを一度に取得することについてますます考えてきました。 –

+0

私はあなたのアプリは何も分からないので、塩の穀物です;-)あなたはあなたのデータとCoreDataを仲介フォーマットとして扱っています。私はいつも、CoreDataをデータとして扱い、XMLを中間形式として使用する方が良いことを発見しました。 – jemmons

+0

私はそれが実現し始めていると思います。あなたの返事をありがとう...私は例などを読んで続け、それに亀裂を与えるつもりです。私は、現在私を抱きしめていることは、すでにコアデータがないxmlのトラックを見出し始めているという事実であると思います。そして少しずつコードに戻っていく必要がありますが、変更を行うのは怖いです。 –

関連する問題