1

私はコアデータに少し慣れておらず、現在親エンティティを利用しようとしています。今、私はこの種のモデルを持っています

エンティティ:

ThemePark -> hasAttractions (1 対多の関係)

WaterPark -> hasAttractions (1 対多の関係)

アトラクション -> inThemePark (hasAttractions の逆関係)

アトラクション -> inWaterPark (hasAttractions の逆関係)

私が持ちたいのは、「hasAttractions」プロパティを持つ親エンティティ、たとえば GenericPark ですが、逆の関係をどのように定義する必要があるかわかりません。

私が次のことをしたら

アトラクション -> inGenericPark (GenericPark の hasAttractions の逆)

GenericPark がウォーターパークかテーマパークかを確認するにはどうすればよいですか?

親エンティティを利用しながら、このモデルを修正するにはどうすればよいですか?

前もって感謝します!!!

4

2 に答える 2

2

NSManagedObjectカスタム サブクラスを定義したかどうかに関係なく、すべてのインスタンスには、NSEntityDescriptionそれがどのような種類のオブジェクトであるかを示す が関連付けられています。-entity問題の管理対象オブジェクトを呼び出すだけです。

例えば:

if ([@"WaterPark" isEqualToString:[[somePark entity] name]]) {
  // do watery things
}
于 2012-08-30T17:02:42.800 に答える
1

Data Model Inspector (エンティティと同じ名前を持つことができます) の各エンティティにカスタム クラスを割り当て、各エンティティの NSManagedObject サブクラスを作成する必要があります (まだ行っていない場合)。

次にThemePark、 とWaterParkは両方とも のサブクラスであり、オブジェクトGenericParcをテストできます。GenericParc

if ([genericParc isKindOfClass:[ThemeParc class]]) {
    // It is a ThemePark:
    ThemeParc *themePark = (ThemeParc *)genericPark;
    // ... 
}
于 2012-08-30T16:33:51.483 に答える