2016-03-21 18 views
-1

Bir çok insan, sıralama yaparken $0 ve $1'u kullanıyor. Benim için çalışmıyor. İşte bazı kişilerin kullandığı kod.

images.sort({ $0.fileID > $1.fileID }) 

images dizidir ve .fileID bu nesne içindeki bir alan olduğunu ortaya koymaktadır. spend adlı oneCells yapısını sıralamak istiyorum.

struct oneCell{ 
    var date = NSDate() 
    var money = Int() 
} 

var spend = [oneCell]() 

Diziyi tarihe göre sıralamak istiyorum. Bunu nasıl yaparım?

+1

Başlığınız ve soru bedeniniz eşleşmiyor. $ 0', '$ 1'’in (Swift kitabında * belgelenmiş *) ya da sıralamanızın neden çalışmadığını soruyor musunuz? –

+1

SO'ya hoş geldiniz. Başlığınızın sorunuzu kapsamadığını fark ettim. Düzenle düğmesini tıklarsanız, sorunuzu düzenleyebilir ve daha alakalı bir şeye dönüştürebilirsiniz. (Swift'de bir diziyi sıralamak veya böyle bir şey nasıl sıralanır). – Koen

+0

, denediğiniz sıralamayı gösterir ve hangi hatayı aldığınızı açıklar. – Wain

cevap

1

O var Steno Argüman İsimleri

Swift otomatik isimlerin $ 0 $ 1, $ 2, vb ile kapatılması en bağımsız değişken değerleri belirtmek kullanılabilir kapanışları, satır içi stenografi argüman adları yer

0

Umut bu size yardımcı olacaktır:

struct oneCell{ 
    var date = NSDate() 
    var money = Int() 
} 

var Spend = [oneCell]() 
Spend.sort({ $0.date.compare($1.date) == NSComparisonResult.OrderedAscending }) 
1

Bunlar p Değerler için dantel sahipleri kapanışa geçti. Adlandırılmak yerine pozisyona göre etiketlenirler. $0 kapamanın ilk argümanıdır, $1 ikinci, $2 üçüncü, vb. Bu durumda sort iki argüman alır. $0, spend dizisinin geçerli öğesidir ve sonraki $1'dur. Bunun gibi sort'u arayacaksınız.

let sorted = spend.sort{$0.date.timeIntervalSince1970 > $1.date.timeIntervalSince1970}