ios NSFetchRequest,排序子对象
您好,我想知道如何指定 FetchRequest,我可以在其中对关系中的对象进行排序。
| Parent | | Child |
| - name |------->| - name |
| - position | | - position |
例如,如果我有一个包含位置属性的父表,并且与也具有位置属性的子表具有一对多关系。如何返回包含按位置排序的子对象的父对象(按位置排序)。
例如
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];
干杯
Hi would like to know how to specify a FetchRequest where i can order the objects in a relationship.
| Parent | | Child |
| - name |------->| - name |
| - position | | - position |
For example if i have a parent table that contains a position attribute and has a one to many relationship with a child table that has a also has a position attribute. How do i return the parent objects (ordered by position) that contain the child objects ordered by 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
Obviously the below code will order the parent objects correctly, but how do i make the child objects that are returned with the each parent to be in the correct order
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];
Cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有两种策略可以实现这一点:
对于#2,您可以查看一下:
There's 2 strategies to this:
For #2, you can check this out :