1.数组排序 支持中文
+(NSMutableArray *)sortDevModel:(NSArray *)arr{
arr = [arr sortedArrayUsingComparator:^NSComparisonResult(DeviceModel *obj1, DeviceModel *obj2) {
if (obj1.isOnline) {
if (obj2.isOnline) {
return [obj1.name localizedCompare:obj2.name];
}else{
return NO;
}
}else {
if (obj2.isOnline) {
return YES;
}else{
return [obj1.name localizedCompare:obj2.name];
}
}
}];
return [[NSMutableArray alloc]initWithArray:arr];
}
localizedCompare:可比较中文
2.多条件排序 如果用中文的key 排序结果可能不正确
NSSortDescriptor *descriptor = [NSSortDescriptorsortDescriptorWithKey:@"key1"ascending:YES];
NSSortDescriptor *descriptor1 = [NSSortDescriptorsortDescriptorWithKey:@"key2"ascending:YES];
arr = [arr sortedArrayUsingDescriptors:@[descriptor,descriptor1]];
NSArray 使用sortedArrayUsingDescriptors,返回排序好的数组。
NSMutableArray直接使用sortUsingDescriptors,对数组本身排序。
如果数组里面不是对象 key直接传nil
网友评论