2015-02-11 84 views
2

我需要按以下方式对字典数组排序。该阵列包含以下格式的字典:排序字典数组

[{ 
    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; 
}] 

所有我必须按“数字”键进行排序。

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

谢谢。

+0

你能提供你试过吗? – 2015-02-11 20:15:33

回答

0

尝试这种情况:

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

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

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

在Swift 2中使用sortInPlace(_ :) – josef 2016-03-20 12:50:24

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声明