2

NSSortDescriptor でソートしている NSFetchRequest を使用しています

これは、フェッチされるエンティティのすべての属性に対して完全に機能します。

そのエンティティ内には 1 つだけ問題があります (常にあるわけではありませんか?)。私は別のエンティティと関係があり、これも整理したいと思います。しかし、それは私に次のエラーを与えています:

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

ここに私のコアデータの設定があります:

ここに画像の説明を入力

これが私のコードです:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entityMonth = [NSEntityDescription entityForName:@"Month" inManagedObjectContext:_managedObjectContext];
    [fetchRequest setEntity:entityMonth];

    NSSortDescriptor *sortDescriptorItem = [NSSortDescriptor sortDescriptorWithKey:@"item.nr" ascending:YES]; //THIS ONE CAUSES THE ERROR!
    NSSortDescriptor *sortDescriptorMonth = [[NSSortDescriptor alloc]initWithKey:@"month" ascending:YES];
    NSSortDescriptor *sortDescriptorYear = [[NSSortDescriptor alloc]initWithKey:@"year" ascending:YES];


    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptorYear, sortDescriptorMonth, sortDescriptorItem, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];

    NSError *error = nil;
    self.stages = [_managedObjectContext executeFetchRequest:fetchRequest error:&error];
4

1 に答える 1

1

オブジェクトは多くのオブジェクトに関連しているitem.nrため、並べ替えはできません。そのため、オブジェクトごとに複数の値があります。MonthItemitem.nrMonth

于 2012-11-19T20:57:12.623 に答える