0
我在导航控制器层次结构中有两个tableviewcontrollers。第一个包含我从核心数据实体获取请求成功填充的父实体。我在父实体中为子实体创建了一对多的关系,并且好像添加了子实体。我可以将其与所有父母的所有孩子一起填充,但不能将其限制为当前的父母。我曾尝试在子表tableview控制器获取请求中使用谓词,但没有成功。使用父实体的子对象填充tableview
我应该使用includesSubEntities并在请求中使用父实体吗?如果是这样,我会以某种方式使用委托协议吗?
下面的代码是为子表tableview。注释掉的位是不同的尝试!
谢谢。
- (NSFetchedResultsController *)fetchSerials
{
if (!_fetchSerials)
{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity =
[NSEntityDescription entityForName:@"Serial"
inManagedObjectContext:AppDelegatePtr.managedObjectContext];
// NSPredicate *predicate = [NSPredicate predicateWithFormat:@"inExercise.name = '%@'", [[SMNetworkModel sharedInstance] selectedNarrative]];
// [fetchRequest setPredicate:predicate];
// [fetchRequest setRelationshipKeyPathsForPrefetching:@[@"inExercise"]];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"narrative" ascending:YES];
[fetchRequest setSortDescriptors:@[sortDescriptor]];
_fetchSerials = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:AppDelegatePtr.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
_fetchSerials.delegate = self;
NSError *error;
if (![_fetchSerials performFetch:&error])
NSLog(@"fetch error: %@", error.localizedDescription);
}
return _fetchSerials;
}