对一个模型数组排序

value或者sortValue,都必须是数值类型,否则排序可能不准确

couponArray数组里面存放的都是模型model

NSMutableArray *a = [couponArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
                BC_MyCouponsModel *mode1 = obj1;
                BC_MyCouponsModel *mode2 = obj2;
                //降序,key表示比较的关键字
                if ([mode1.value floatValue] < [mode2.value floatValue]) {
                    return NSOrderedDescending;
                } else {
                    return NSOrderedAscending;
                }
            }].mutableCopy;

/// 使用NSDescriptor排序 ascending: NO,代表降序,YES代表升序
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"sortValue" ascending:NO];
NSArray *sortPackageResListArr = [couponArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
NSLog(@"%@",sortPackageResListArr);

二. 使用NSDescriptor排序

单个关键字排序

NSMutableArray *array = [NSMutableArray array];    
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"key" ascending:YES];
[array sortUsingDescriptors:[NSArray arrayWithObject:sort]]; 

多个关键字排序

NSMutableArray *array = [NSMutableArray array];  
NSSortDescriptor *sort1 = [NSSortDescriptor sortDescriptorWithKey:@"key1" ascending:YES];  
NSSortDescriptor *sort2 = [NSSortDescriptor sortDescriptorWithKey:@"key2" ascending:NO]; 
......   
[array sortUsingDescriptors:[NSArray arrayWithObjects:sort1, sort2, nil]];
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容