我是 swift 的新手。我正在尝试一个示例应用程序,我需要在其中按字母顺序对数组进行排序。我获取 json 数据并在数组中添加标题。现在我想按字母顺序排序。这是我的代码......
func updateSearchResults(data: NSData?)
{
do
{
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
if let blogs: NSArray = json["results"] as? [AnyObject] {
print(blogs)
for blog in blogs {
if let name = blog["original_title"] as? String {
names.addObject(name)
}
}
print(names)
**let sortedArray = sorted(names, {
(str1: String, str2: String) -> Bool in
return str1.toInt() < str2.toInt()** // Here I am getting the Error Message
})
}
}
catch {
print("error serializing JSON: \(error)")
}
}
我收到的错误消息是“无法使用类型为‘(NSMutableArray, (String, String) -> Bool)’的参数列表调用‘sorted’”
我尝试了很多来实现这个目标,但我没有找到解决方案。 谁能帮我解决这个问题。 提前致谢。
最佳答案
首先使用下面的代码行将 NSMutableArray
转换为数组。
let swiftArray = mutableArray as AnyObject as! [String]
使用下面的代码行对数组进行排序。
var sortedArray = names.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending }
检查下面的链接以获取 sort
闭包。
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
Swift 3.0 更新
var sortedArray = swiftArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
关于ios - 在swift中按字母顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36394813/