1
我有一個核心數據對象叫做Workshop。它與Student對象有多對多的關係。獲取核心數據對象的子對象的屬性?
如何從Workshop對象中獲得學生姓氏的NSArray
(姓氏是學生的NSString
屬性)?最好按字母順序?
我有一個核心數據對象叫做Workshop。它與Student對象有多對多的關係。獲取核心數據對象的子對象的屬性?
如何從Workshop對象中獲得學生姓氏的NSArray
(姓氏是學生的NSString
屬性)?最好按字母順序?
警告:未經測試的代碼傳入
假設兩者的車間和學生的實體有一個「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];
}