0

我是 iOS 开发的新手,我在 Core Data 中开始涉足。我有一个我正在慢慢拼凑的应用程序(感谢这个网站的帮助!),但我被困在如何获取数据上。

应用程序:

我的应用程序有两个主屏幕,都是 UITableViews:一个“类列表”视图,他们可以在其中添加新类,以及一个“添加我的数据模型”有两个实体:课程(用于课程)和学生,与课程的一对多关系-学生。现在我可以正常工作,因此当我在“班级列表”视图中点击一个班级时,我会被带到“添加学生”视图,在那里我可以将学生添加到班级,但我的获取结果控制器是返回我添加的所有学生。我的问题:如何在“添加学生”视图中格式化获取请求以仅获取那些应该属于该班级的学生?这是我现在拥有的获取结果控制器:

-(NSFetchedResultsController *) fetchedResultsController {
if (_fetchedResultsController !=nil) {
    return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"name" cacheName:nil];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;

}

我猜它与谓词有关,但我的学习还没有那么远。任何帮助将不胜感激。谢谢!

4

1 回答 1

0

你猜对了。要获取属于特定课程的所有学生,请将以下谓词添加到获取请求中:

Course *theCourse = ...; // your Course object
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"course = %@", theCourse];
[fetchRequest setPredicate:predicate];

(假设从学生课程的一对一关系称为“课程”)。

于 2013-07-04T22:06:17.770 回答