您的位置:首页 > 移动开发 > Swift

【iOS】swift 排序Sort函数用法(包含NSDictionary排序)

2015-12-02 10:15 405 查看

用了几分钟做的简单翻译


一个例子

直接贴代码,不过多解释
//这是我们的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])]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: