美文网首页Swift聚焦SwiftTipsswift
Swift排序Sort函数用法(包含NSDictionary排序

Swift排序Sort函数用法(包含NSDictionary排序

作者: lfb_CD | 来源:发表于2015-07-15 00:14 被阅读11083次

CSDN地址:http://blog.csdn.net/li962429707/article/details/46885773

摘自stackoverflow的问答

用了几分钟做的简单翻译

一个例子

直接贴代码,不过多解释

//这是我们的model
class imageFile  {
    var fileName = String()
    var fileID = Int()
}
//使用
var images : [imageFile] = []
images.sort({ $0.fileID > $1.fileID })

下面是闭包的进阶使用

// 一般的代码形式
images.sort({ (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })

// 省略(->)的形式
images.sort({ image1, image2 in return image1.fileID > image2.fileID })

// 去掉return的简单闭包形式
images.sort({ image1, image2 in image1.fileID > image2.fileID })

// 隐藏参数的形式
images.sort({ $0.fileID > $1.fileID })

// 以下结果都是相同,只是书写形式不同
images = images.sorted({ (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
images = images.sorted({ image1, image2 in return image1.fileID > image2.fileID })
images = images.sorted({ image1, image2 in image1.fileID > image2.fileID })
images = images.sorted({ $0.fileID > $1.fileID })
//swift标准库
sort(&images, { (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
sort(&images, { image1, image2 in return image1.fileID > image2.fileID })
sort(&images, { image1, image2 in image1.fileID > image2.fileID })
sort(&images, { $0.fileID > $1.fileID })

//使用方法
images = sorted(images, { (image1: imageFile, image2: imageFile) -> Bool in return image1.fileID > image2.fileID })
images = sorted(images, { image1, image2 in return image1.fileID > image2.fileID })
images = sorted(images, { image1, image2 in image1.fileID > image2.fileID })
images = sorted(images, { $0.fileID > $1.fileID })
let dictionary = [
    "A" : [1, 2],
    "Z" : [3, 4],
    "D" : [5, 6]
]

NSDictionary根据key排序

let sortedKeys = Array(dictionary.keys).sorted(<) // ["A", "D", "Z"]
let sortedKeysAndValues = sorted(dictionary) { $0.0 < $1.0 }
println(sortedKeysAndValues) // [(A, [1, 2]), (D, [5, 6]), (Z, [3, 4])]

相关文章

网友评论

  • 青葱烈马:这里能使用 fileName 这个 key 来排序吗? 怎么写?
  • 豆志昂扬:现在函数重新命名为 sortInPlace 了
  • OSong:哥们你的写法在现在的语法中已经是错的啦,需要有点小小的修改啦
    ```
    let sortedkeys = Array(dictionary.keys).sort( < )
    print(sortedkeys)
    let sortedKeysAndValues = dictionary.sort{$0.0 < $1.0}
    print(sortedKeysAndValues)
    ```
  • Watson喆昊:尽然无赞+1 :cry:
  • leftwater:尽然无赞

本文标题:Swift排序Sort函数用法(包含NSDictionary排序

本文链接:https://www.haomeiwen.com/subject/zoguqttx.html