2010-11-19 106 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]; 
} 
相關問題