2011-07-22 17 views
0

私は病院と呼ばれるコアデータエンティティを持っています。名前(文字列)、緯度(倍精度)、経度(倍精度)の3つのフィールドがあります。 私はHospitals.h/.mと呼ばれるNSManagedObjectクラスを用意しています。これにより、データをうまくフェッチできます。NSManagedObjectをサブクラス化する

また私は現在のCLLocationを決定しました。

今、病院の記録をすべて読み込むと、私は病院から現在の距離を計算します。問題ない。

ああ、私はCLLocationDistanceをどこかに保存する必要があります。最初は、1)HospitalManagedObjectと2)CLLocationDistanceを保持する新しいクラスをiVarsで作成しました。しかし、それは非常に厄介になった。

私は、病院で管理されているオブジェクトクラスを拡張して、変数「myDistance」を含めることを考えました。しかし、私が試みていることはすべて、サブクラス化された管理対象オブジェクトがコアデータとのやりとりを停止する原因となります。

どうすればよいですか?

洞察力は非常に高く評価されています。

+0

私は(最終的に)病院の配列を "myDistance" varで並べ替えることを忘れていました。 – mputnamtennessee

答えて

1

myDistanceなどと呼ばれる病院オブジェクトのオブジェクトモデルに新しいフィールドを追加し、それをデータモデルにタイプUndefinedにすることができます。これは、実行時に使用するプロパティを持っているが、データベースに格納されるものではないことをCore Dataに伝えます。

この

@property (nonatomic, retain) NSNumber *myDistance; 

のように(私は距離がするNSNumberであると仮定しています)あなたが好きなタイプ使用してプロパティを定義し、あなたの実装では、あなただけの@dynamic myDistance;文でそれを置くことができますHospital.hで

他のすべてのデータフィールドと同様です。

+0

ありがとうございます。私は毎日何か新しいことを学んでいます。私があなたの答えを知る前に、データモデルに「一時的な」myDistanceフィールドを追加しようとしました。 NSMutableArray(myDistancesが割り当てられたフェッチされたコアデータ)をソートすることができないことを除いて、すべてうまくいくようです。私はフィールドタイプ 'undefined'を試してみましょう。 – mputnamtennessee