iOS 数组排序
现在有下列两个数组,我们从他们开始接触数组的排序
1 | NSArray *arrayString = @[@"20", @"30", @"8", @"10", @"9", @"88", @"66"]; |
1、sortedArrayUsingSelector
这个方法很简单,使用也很便捷,它返回一个排好序的数组
[arrayString sortedArrayUsingSelector:@selector(compare:)];
但是当你执行打印会发现arrayString执行该方法排序后的结果是下图
在这里我们要注意的时,它排序的时候如果对于arrayString
来说,它是按字母书序排列的,而不是按照数字大小,这个要注意, arrayNumber
这个数组则没问题,如果你想要按照自己的规则来排序,可以自己写个方法,传到@selector()
里面就行
2、sortedArrayUsingComparator
使用这个方法,我们可以在block里面写入自己定义的规则,实现起来也听方便的
1 | [arrayString sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { |
现在就是正确的按照数字大小排序了,嘿嘿嘿~
3、sortedArrayUsingDescriptors
& sortUsingDescriptors
前者返回一个排好序的数组,后者则是对自身进行排序,无返回值~
哲理我们讲一下前者的方法,不多说,上代码—
1 | //首先我们定义一个类Person |
结果如下图:
最后再体验一下其中的KVC奥妙,我们用字典来体验一下
1 | NSArray *dict =@[ |