0

在我的 CoreData 模型中有 3 个实体

具有与 Sections 实体的 section 关系和与 Chapters 实体的章节关系的结构。

所以一个 Formation 包含 1 或 n 个包含 1 或 n 章的部分

在我的实体部分中,有一个sortNB属性(一种id),所以我想在我的请求中对我的部分进行排序。

我试着做:

NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Formations" inManagedObjectContext:_managedObjectContext];
[request setEntity:entity];


NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"sections.sortNB" ascending:YES];
[request setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"sections", nil]];
[request setSortDescriptors:[NSArray arrayWithObject:sort]];


NSArray *forms = [[_managedObjectContext executeFetchRequest:request error:nil]mutableCopy];

但出现错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'

我该如何进行?

我想在我的章节实体中插入相同类型的数字来对其进行排序,但首先,让我们为章节解决它:p

谢谢

4

1 回答 1

4

好的,所以我不是在我的请求中而是在使用之后对我的对象进行排序

NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"sortNB" ascending:YES]];

NSArray *sortedRecipes = [[[formation sections] allObjects] sortedArrayUsingDescriptors:sortDescriptors];

它有效。

谢谢你的帮助。

于 2012-09-04T19:21:21.537 回答