2016-03-21 73 views
-1

很多人在排序時使用$0$1。它不適合我。這是一些人使用的代碼。

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

images是陣列和我假定.fileID是該對象中的一個字段。我想排序我的數組oneCells結構名爲spend。我想按日期對數組進行排序。我會怎麼做?

+1

您的標題和問題主體不匹配。你在問什麼'$ 0','$ 1'(它*是*在Swift書中記載的),或者你的排序不起作用的原因? –

+1

歡迎來到SO。我注意到你的標題不包括你的問題 - 如果你點擊編輯按鈕,你可以編輯你的問題並將其改爲更相關的東西。 (如何在Swift中按日期排序數組,或類似的東西)。 – Koen

+0

顯示您嘗試的排序並解釋您得到的錯誤 – Wain

回答

1

這速記參數名

夫特自動提供速記參數名內聯 封閉件,其可用於通過名稱$ 0,$ 1,$ 2等,指的是閉合的 參數的值在

0

希望這將幫助你:

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

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

這些是p將值傳遞給閉包。它們被標記爲位置而不是被命名。 $0是關閉的第一個參數,第二個是$1,第三個是$2,依此類推。在這種情況下,sort需要兩個參數。 $0spend數組的當前元素,下一個是$1。你會這樣稱呼sort

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