2010-11-19 111 views

回答

2

警告:未经测试的代码传入

假设两者的车间和学生的实体有一个“name”属性和您的学生的实体有一个名为“工作坊”这是你将如何获取对象的关系:

- (NSArray*) getStudentsForWorkshop:(NSString*) workshopName { 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" 
              inManagedObjectContext:managedObjectContext]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Workshop.name LIKE %@", workshopName]; 
    [fetchRequest setPredicate:predicate]; 
    [fetchRequest setEntity:entity];           

    NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:nil]]; 

    NSArray *sortedArray = [NSArray arrayWithArray: [result sortedArrayUsingSelector:@selector(compareStudent:)]]; 
    return sortedArray;  
} 

对于排序,你会实现compareStudent像这样:

- (NSComparisonResult)compareStudent:(NSManagedObject*)otherObject { 
    return [self.name compare:otherObject]; 
} 
相关问题