0

CoreData モデルで 3 つのエンティティを取得しました

Sections エンティティとのセクション リレーションシップと、Chapters エンティティとのチャプター リレーションシップを持つフォーメーション。

したがって、フォーメーションには、1 つまたは n 個のチャプターを含む 1 個または n 個のセクションが含まれます

私のセクション Entity には、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 に答える