我需要从另一个NSArray
生成NSNumber
的排序数组。我想使用sortedArrayUsingComparator:
方法。我发现苹果的文档在这个例子:更改排序顺序 - [NSArray sortedArrayUsingComparator:]
NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
在这里,我只是提供比较的块,这是罚款。排序本身 - 隐藏在我身边的那个使用这个块的位 - 似乎是上升的。
我想知道我是否可以要求不同的排序顺序外这一块,还是我只需要左右翻转<
和>
的(或NSOrderedXXX
的)?
,这是好的。当然,但除非你有橙色装饰它 - 用红色耶稣基督墨迹写的交通注释说明你已经翻转了这个命令,在某个时候,这可能是一个潜在的调试噩梦。 构建一个排序描述符会更有意义,并且会自我评论,除非性能会受到严重打击。 –
@God排序描述符听起来不错,请提供一个用于比较的实现示例。 – zaph