ios – 按字母顺序排列数字

myArray = [Step 6,Step 12,Step 5,Step 14,Step 4,Step 11,Step 16,Step 9,Step 3,Step 13,Step 8,Step 2,Step 10,Step 7,Step 1,Step 15]

我怎么能以这种方式对这个数组进行排序?

[Step 1,....]

我用swift sort(& myArray,{$0 <$1})中的这个函数,但是这样排序

[Step 1,Step 15,Step 6,Step 9]

解决方法

一个变种就是使用
localizedStandardCompare:.从文档:

This method should be used whenever file names or other strings are
presented in lists and tables where Finder-like sorting is
appropriate.

这将根据当前语言环境对字符串进行排序.
例:

let myArray = ["Step 6","Step 12","Step 10"]

let ans = sorted(myArray,{ (s1,s2) in 
    return s1.localizedStandardCompare(s2) == NSComparisonResult.OrderedAscending
})

println(ans)
// [Step 6,Step 12]

更新:上述答案相当陈旧,适用于Swift 1.2. Swift 3版本是(感谢@Ahmad):

let ans = myArray.sorted {
    (s1,s2) -> Bool in return s1.localizedStandardCompare(s2) == .orderedAscending
}

另一种方法https://stackoverflow.com/a/31209763/1187415,
翻译成Swift 3 at https://stackoverflow.com/a/39748677/1187415.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...