Tim*_*Tim 18 sorting cocoa objective-c nsarray
我需要NSNumber从另一个生成一个排序的s 数组NSArray.我想用这个sortedArrayUsingComparator:方法.我在Apple文档中找到了这个例子:
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;
}];
Run Code Online (Sandbox Code Playgroud)
这里我只是在块中提供比较器,这很好.排序本身 - 隐藏在我身上的一点,它使用了这个块 - 似乎是在提升.
我想知道我是否可以在此块外部请求不同的排序顺序,或者我是否只需要翻转<和>(或NSOrderedXXX)s?
只需改变逻辑:
NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,最好将此方法设置为名称类似于: 的方法decendingSort。