2016-07-29 7 views
0

Ich habe eine Klasse:Sortieren Multidimensionale Array von bestimmten Klasse schneller

class Rates{ 
var price:Double? 
} 

mehrdimensionales Array:

var rates:[[Rates]] = [[],[],[],[],[]] 

ich jedes Array in Raten von kleinsten doppelt auf dem Größte zu sortieren versuchen. Hier ist, was ich versuchte

for x in 0 ..< 4 { 

     self.shippingRates[x].sort({ (Rates, Rates2) -> Bool in 
          return Rates.price < Rates2.price 
         }) 
        } 

Aber aus irgendeinem Grunde die Art nicht funktioniert, wenn ich die Daten angezeigt wird es nicht sortiert angezeigt. Was mache ich falsch?

+0

keiner von ihnen sortiert werden, ich habe

+0

der Post herausgegeben hatte ich rates2.price im Code:/tut noch sort –

Antwort

1

Weil sort ein neues Array zurückgibt, das Sie nicht beibehalten haben. Verwenden Sie sortInPlace statt:

for x in 0 ..< 4 { 
    self.shippingRates[x].sortInPlace { $0.price < $1.price } 
}