zoukankan      html  css  js  c++  java
  • 【iOS】swift 排序Sort函数用法(包含NSDictionary排序)

    用了几分钟做的简单翻译

    一个例子

    直接贴代码,不过多解释

    //这是我们的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])]
  • 相关阅读:
    javascript 数字时钟
    ubuntu下键盘背景灯光设置
    使用百度地图SDK
    ListView 的Item状态改变和保存
    继续Jsoup 正方教务系统的教学质量评价一键好评
    Java下的可视化开发工具使用 WindowBuilder Pro
    js 数组排序
    js数组去重
    js call() apply()
    [总结] js的2种继承方式详解
  • 原文地址:https://www.cnblogs.com/melons/p/5791988.html
Copyright © 2011-2022 走看看