1、数组里面的元素不是数字类型
这类数组排列前需要先进行转换类型:
通过NScomparator定义一个比较方法,然后调用这个方法进行排序。
(NSComparisonResult)NSOrderedDescending: 比较结果后升序排列
(NSComparisonResult)NSOrderedAscending:比较结果后降序排列
(NSComparisonResult)NSOrderedSame:不变
通过这个方法得到结果:
2、数组里的元素为字符串
例如:
如果数组里的元素是这种类型的,就不能转换成NSInteger类型,需要用字符串比较法,代码为:
NSStringCompareOptions字符串比较方式枚举:
NSCaseInsensitiveSearch - 不区分大小写比较
NSNumericSearch - 按照字符串里的数字为依据,算出顺序
NSWidthInsensitiveSearch - 忽略字符串的长度,比较出结果
NSForcedOrderingSearch - 忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending
设定好选项后还是通过NSComparator定义一个比较方法,用NSRange设置好字符串的比较长度,最后得到的结果为: