私はコアデータモデルに1対多数の関係を持っています。 1つの食事は複数の食べ物を持つことができる。私は1つの食事から食べ物をテーブルに入れたい。だから食事#1にリンゴ、オレンジ、レモンがあれば、テーブルはそれらの3つの食物で構成されます。コアデータの1対多リレーションシップ
私は完全に詰まっているので、どんな助けも非常に高く評価されます。ここで
は私のモデルである:
そしてNSManagedObjectクラス:
Meal.h
@class Food;
@interface Meal : NSManagedObject
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSSet *foods;
@end
@interface Meal (CoreDataGeneratedAccessors)
- (void)addFoodsObject:(Food *)value;
- (void)removeFoodsObject:(Food *)value;
- (void)addFoods:(NSSet *)values;
- (void)removeFoods:(NSSet *)values;
@end
Food.h
@class Meal;
@interface Food : NSManagedObject
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) Meal *meals;
@end
ここに私がこれを試みようとしているコードがありますが、いくつか問題があります。
- (NSFetchedResultsController *)fetchedResultsController
{
if (_fetchedResultsController != nil)
return _fetchedResultsController;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Food" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"Meal.foods == %@", entity]];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_context sectionNameKeyPath:nil cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
[fetchRequest release];
[theFetchedResultsController release];
return _fetchedResultsController;
}
あなたが立ち往生している何?あなたの問題が何であるか正確に教えてください。 – sosborn
なぜここで一対多の関係を使用するのですか? 「食品」が特定の食品ではなく食品の* kind *を表す場合、私は与えられた「食品」インスタンスが複数の食事に関連することができると期待します。 – Caleb
あなたの問題は解決しましたか? –