需要帮助设置获取谓词

时间:2011-04-27 14:38:53

标签: iphone objective-c core-data

我不确定YourNameVariable使用什么。我认为它需要是Routine的一个实例(或者可能是Routine的名称属性)但是我该如何创建呢?我正在使用UITableView。

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Exercise" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

[request setPredicate: [NSPredicate predicateWithFormat: @"routineExercises = %@", yourVariableNameHere]];

NSLog(@"After managedObjectContext: %@",  managedObjectContext);

NSError *error = nil;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
    // Handle the error.
}
[mutableFetchResults release];
[request release];

这是我的数据模型: enter image description here

另外,我应该将它放在viewDidLoad中还是fetchResultsController的方法中?

1 个答案:

答案 0 :(得分:1)

如果您已拥有Routine个对象,则无需提取。您只需向Routine对象询问其routineExercises关系的内容。

当您没有要开始的对象时,可以使用提取。如果您已有一个对象,那么您可以通过它的关系来查找它的关联对象。获取已存在于关系中的对象会破坏首先建立关系的目的。