我想按符号对数据进行排序。在 SQLite 函数中,“sign”工作正常。但在核心数据中,我不能重复这一点。我试过这个:
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 上不起作用(错误:“不支持的 NSSortDescriptor(不支持比较器块)”),在 iOS 5.1 上很好(我认为它在获取结果数组后排序,但不确定)
试过这个:
NSSortDescriptor* signSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"sign(id)" ascending:NO];
fetchRequest.sortDescriptors = @[signSortDescriptor];
但是得到错误...