【发布时间】:2011-09-05 11:50:11
【问题描述】:
我有 2 个视图,每个视图都包含一个 UITableView。它们在 iPad 上同时并排显示。
我对所有数据都使用 Core Data。两个表都需要编辑(添加、删除行等),所以我想在每个视图中使用 NSFetchedResultsController 来为我处理所有这些。
第二个表的内容取决于第一个表中选择的内容。因此,当在第一个表中选择一个项目时,该对象将被传递给第二个表的视图(所以我已经可以访问应该进入第二个表的数据),但我想尝试使用如果可能,NSFRC 的所有内置处理。
该模型类似于:大学(uniID、uniName、学生)和学生(stuID、stuName、大学)。所以关系是:大学>学生。
我在 NSFRC 中使用以下代码,但它返回 0 个结果:
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil) {
return fetchedResultsController;
}
NSManagedObjectContext *context = appDelegate.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc]initWithKey:@"stuName" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"university == %@",self.selectedUniversity];
[fetchRequest setPredicate:predicate];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
fetchedResultsController.delegate = self;
[sort release];
[fetchRequest release];
[theFetchedResultsController release];
return fetchedResultsController;
}
如果有人至少能指出我正确的方向,我将不胜感激......
【问题讨论】:
标签: iphone ios ipad core-data nsfetchedresultscontroller