ios - 在swift中按字母顺序对数组进行排序

标签 ios arrays swift sorting

我是 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/

相关文章:

ios - NSRunLoop的runMode :beforeDate: - the correct approach for setting the "beforeDate"

iphone - iOS AVAudioPlayer 让其他应用的背景音乐停止

javascript - REACT NATIVE REDUX 如何在 Action 创建者收到的reducer中设置数组

javascript - 从数组中获取包含文本的元素

SwiftUI 的anchorPreference 折叠其 View 的高度

ios - Metal alpha 混合不起作用

ios - 来自 CoreDataStack 的托管上下文不会通过导航栏持续存在

c++ - 如何强制不修改引用变量的任何部分?

ios - TableView 从 : numberOfRowsInSection 中的最后一部分开始

ios - 用于访问 PHAsset 对象的 URL 信息的同步方法