29,027
社区成员
发帖
与我相关
我的任务
分享
NSArray *arr = @[@2134, @123, @111, @324, @414];
arr = [arr sortedArrayUsingSelector:@selector(compare:)];
NSEnumerator *enumerator = [arr reverseObjectEnumerator];
NSArray *arr1 = [[NSArray alloc] initWithArray:[enumerator allObjects]];
NSLog(@"%@", arr1);
NSArray *arr = @[@2134, @123, @111, @324, @414];
arr = [arr sortedArrayUsingSelector:@selector(compare:)]; // 默认为升序
NSEnumerator *enumerator = [arr reverseObjectEnumerator]; // 创建enumerator,将排序好的arr逆序
NSArray *arr1 = [[NSArray alloc] initWithArray:[enumerator allObjects]]; // 取出排序好的结果
如果你想一步到位,可以使用
- (NSArray<ObjectType> *)sortedArrayUsingComparator:(NSComparator NS_NOESCAPE)cmptr API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));
可以自定义排序的条件及升降
// 数组降序
[arr sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
NSNumber *tNumber1 = (NSNumber *)obj1;
NSNumber *tNumber2 = (NSNumber *)obj2;
if (tNumber1.intValue < tNumber2.intValue) { // 交换
return NSOrderedDescending;
} else {
return NSOrderedAscending; // 不交换
}
}]