2015-02-11 53 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聲明