一連のデータをCoreData persistentStoreにインポートしようとしています。これは、実行時にユーザーに提示される読み取り専用のデータです。CoreData 1対多および逆関係の問題
"Item"というエンティティと1対多の関係を持ち、カテゴリと逆の関係にある "カテゴリ"というエンティティがあります。
アイテムをコンテキストに追加すると、それらを正しいカテゴリにどのように関連付けるのですか? SQLite dBでは、ItemテーブルにCategoryフィールドを追加することによってそれが行われ、おそらくカテゴリの主キーが関係に使用されることがわかります。しかしPKは背後にあります...接続する方法はありますか?
私もアイテムを追加するためのCoreDataによって生成された方法があるというのが私のCategoryクラスで参照が、私は、これらはCoreDataは関係を維持することができALOS舞台裏方法であると仮定しています:
@interface Category (CoreDataGeneratedAccessors)
- (void)addItemObject:(Item *)value;
- (void)removeItemObject:(Item *)value;
- (void)addItems:(NSSet *)value;
- (void)removeItems:(NSSet *)value;
@end
CoreDataが関係のもう一方の面を自動的に処理するというプログラミングガイドを読みましたが、項目を追加するとカテゴリへの最初のリンクをどうやって行うのか分かりません。
おかげ
JK
ありがとう、Unforgiven。私は別の掲示板の別の投稿から既にこのことのほとんどを理解していましたが、あなたの答えは鐘のようにはっきりしています。ウィッシュアップルのドキュメントが良かった!今、私は特定のカテゴリのアイテムを取得する方法を学ぶ必要があり、私は自宅無料です! jk – Alpinista
Itemエンティティからオブジェクトをフェッチするために使用するフェッチ要求にNSPredicateを関連付ける必要があります。カテゴリエンティティがプロパティとしてカテゴリの名前を格納している場合は、ItemからCategoryへの一対一の関係を使用します。NSPredicate *述語= [NSPredicate predicateWithFormat:@ "category.name LIKE%@"、yourCategoryNameStringHere]; このエンティティを、Itemエンティティからオブジェクトをフェッチするために使用するフェッチ要求に単に関連付けるだけです。 –
もう一度、Unforgivenに感謝します。 私は、あなたが他の方向から行くこともできることを発見しました。あなたがCategoryを持っているなら、Categorie's ItemsプロパティのNSSetからItemsの配列を得ることができます。 – Alpinista