您想知道如何指定FetchRequest,我可以在关系中订购对象。
| Parent | | Child |
| - name |------->| - name |
| - position | | - position |
例如,如果我有一个包含position属性的父表,并且与具有position属性的子表具有一对多的关系。如何返回包含按位置排序的子对象的父对象(按位置排序)。
e.g
parent 1
child 1
child 2
child 3
parent 2
child 15
child 16
parent 3
child 22
child 23
child 24
显然,下面的代码会正确排序父对象,但是如何使每个父对象返回的子对象的顺序正确
NSFetchRequest* fetchReqest = [[NSFetchRequest alloc] init];
NSEntityDescription* entity = [NSEntityDescription entityForName:@"parent" inManagedObjectContext:managedObjectContext];
[fetchReqest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc]
initWithKey:@"position" ascending:YES];
[fetchReqest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
NSArray* parentsThatContainChildren = [managedObjectContext executeFetchRequest:fetchReqest error:nil];
干杯
答案 0 :(得分:4)
有两种策略:
对于#2,您可以check this out:
NSSortDescriptor *positionSort = [NSSortDescriptor sortDescriptorWithKey:@"position" ascending:YES];
NSArray *children = [[parent.children allObjects] sortedArrayUsingDescriptors:[NSArray arrayWithObject:positionSort]];