0

xcodeでデータモデルを次のように設定しました

EntityA

AttA1 AttA2

EntityB

AttB1 AttB2 AttB3

次に、関係を設定します

EntityA

名前:rlpToEntityB

宛先:EntityB

逆:rlpToEntityA

多くの人へ:チェック済み

EntityB

名前:rlpToEntityA

宛先:EntityA

逆:rlpToEntityB

多くの人へ:未チェック

つまり、EntityAのそれぞれが多くのEntityBを持つことができる2つの間の関係

EntityBのサブセットをフェッチすると、関連するEntityAの値を取得できることを理解しています。

私はこれを機能させているので、を使用してEntityB値を取得できます

NSManagedObject * objMO = [fetchedResultsController objectAtIndexPath:indexPath];

strValueFromEntityB = [objMO valueForKey:@ "AttB1"];

ただし、次のようにしてEntityAから関連する値を取得しようとすると

strValueFromEntityA = [objMO valueForKey:@ "AttA1"];

「エンティティEntityBはキーAtta1のキー値コーディングに準拠していません」というエラーが表示されます

当然のことながら、EntityAからフェッチするように切り替えると、EntityBの属性にアクセスできないため、定義された関係が無視されているように見えます。

誰かが私が間違っていることを見つけることができますか?

私はiPhoneプログラミング、特にCore Dataに非常に慣れていないことを告白します。そのため、私に気楽に説明して、詳細な説明を提供するか、特定のリソースの方向を示してください。アップルのサンプルアプリ(コアデータブック、トップソング、レシピ)をダウンロードしましたが、それでもうまくいきません。

よろしくお願いします、Nev。

4

2 に答える 2

1

あるエンティティの属性を別のエンティティから直接取得することはできません。用語を借りるには、次のようにする必要があります。

(エンティティ B)->(A との関係)->(A の属性)

また

[[objMO valueForKey: @"rlpToEntityA"] valueForKey: @"AttA1"]
于 2010-06-17T16:00:00.063 に答える
1

ご返信いただきありがとうございますが、私は自分の問題を解決しました。あなたの回答には何らかのメリットがあると確信していますが、それは私が問題を解決するために使用したものではありません。(おそらく、私はそれをあまりうまく説明しなかったため、応答が不足しています)、要するに、valueForKeyの代わりにvalueForKeyPathメソッドを使用する必要がありました。

乾杯、ネバダ州。

于 2010-06-22T09:48:46.107 に答える