我在我的核心數據模型中擁有一對多關係。一餐可以有多種食物。我想用一頓飯中的食物填充一張桌子。所以如果第一餐含有蘋果,橙子和檸檬,那麼這張桌子就包含了這三種食物。核心數據一對多關係
任何幫助非常感謝,因爲我完全卡住了。
這裏是我的模型:
而且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 2012-03-14 02:58:38
爲什麼在這裏使用一對多的關係?如果「食物」代表一種食物而不是特定的食物,那麼我希望給定的「食物」實例能夠與多餐相關。 – Caleb 2012-03-14 06:21:56
你的問題解決了? – 2012-03-14 06:40:05