0

データを記号でソートしたい。SQLite 関数では "sign" が正常に機能します。しかし、Core Data では、これを繰り返すことはできません。私はこれを試しました:

    NSSortDescriptor* signSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"id" ascending:NO comparator:^NSComparisonResult(NSNumber* obj1, NSNumber* obj2) {
        int val1 = sign([obj1 integerValue]);
        int val2 = sign([obj2 integerValue]);
        return (val1 < val2) ? NSOrderedAscending : (val1 > val2) ? NSOrderedDescending : NSOrderedSame;
    }];
    fetchRequest.sortDescriptors = @[signSortDescriptor];

iOS 6.1 では動作しません (エラー: "unsupported NSSortDescriptor (comparator blocks are not supported)")、iOS 5.1 では問題ありません (結果の配列を取得した後にソートされると思いますが、確かではありません)

これを試しました:

    NSSortDescriptor* signSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"sign(id)" ascending:NO];
    fetchRequest.sortDescriptors = @[signSortDescriptor];

しかし、エラーが発生します...

4

1 に答える 1