データを記号でソートしたい。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];
しかし、エラーが発生します...