1、數組里面的元素不是數字類型
???????
這類數組排列前需要先進行轉換類型:
通過NScomparator定義一個比較方法,然后調用這個方法進行排序。
? ? ?? (NSComparisonResult)NSOrderedDescending: 比較結果后升序排列
? ? ?? (NSComparisonResult)NSOrderedAscending:比較結果后降序排列
? ? ?? (NSComparisonResult)NSOrderedSame:不變
通過這個方法得到結果:
2、數組里的元素為字符串
???????? 例如:
如果數組里的元素是這種類型的,就不能轉換成NSInteger類型,需要用字符串比較法,代碼為:
NSStringCompareOptions字符串比較方式枚舉:
? ? ? ? ? ? ? NSCaseInsensitiveSearch - 不區分大小寫比較
? ? ? ? ? ? ? NSNumericSearch - 按照字符串里的數字為依據,算出順序
? ? ? ? ? ? ? NSWidthInsensitiveSearch - 忽略字符串的長度,比較出結果
? ? ? ? ? ? ? NSForcedOrderingSearch - 忽略不區分大小寫比較的選項,并強制返回 NSOrderedAscending 或者 NSOrderedDescending
設定好選項后還是通過NSComparator定義一個比較方法,用NSRange設置好字符串的比較長度,最后得到的結果為: