排序字典数组

时间:2015-02-11 20:13:49

标签: sorting swift sorted

我需要通过以下方式对字典数组进行排序。该数组包含具有以下格式的字典:

[{
  fecha = "09:54:51";
  "nombre_vendedor" = Rafaela;
  numero = 501;
  precio = 52;
  "punto_venta" = Base;
  tipo = Gold;
}
{
  fecha = "09:54:51";
  "nombre_vendedor" = Miguel;
  numero = 400;
  precio = 40;
  "punto_venta" = Base;
  tipo = Gold;
}]

所有我必须按" numero"排序。键。

任何人都知道如何做到这一点。我一直在尝试sortArrayUsingComparator方法,但我没有得到任何结果。

谢谢。

3 个答案:

答案 0 :(得分:3)

您可以通过以下方式使用排序方法:

myArray.sort { $0["numero"]! < $1["numero"]! }

答案 1 :(得分:0)

试试这个:

var descriptor: NSSortDescriptor = NSSortDescriptor(key: "numero", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])

答案 2 :(得分:0)

您可以使用sort方法,传递一个闭包,给定2个数组元素,确定哪个首先出现。

实现这一目标的一种安全方法是:

array.sort { (lhs, rhs) in
    if let n2 = rhs["numero"] as? Int {
        if let n1 = lhs["numero"] as? Int {
            return n1 < n2
        }
        return false
    }
    return true
}

正如您可能注意到的,我通常更喜欢使用安全代码与不安全代码 - 这就是代码检查两个字典上numero密钥是否存在的原因。

上面的实现对数组进行了排序,将最后没有numero键的项放在最后 - 如果你想要相反的情况,只需切换最后2 return个语句