2016-03-21 2 views
-1

多くの人が並べ替えの際に$0$1を使用します。それは私にとってはうまくいかない。ここでは、一部の人々が使用するコードです。

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

images配列であり、Iは、.fileIDがそのオブジェクト内のフィールドであると仮定する。私はspendという名前の構造体oneCellsをソートしたいと思います。

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

var spend = [oneCell]() 

配列を日付順に並べ替える必要があります。どうすればいい?

+1

タイトルと質問の本文が一致しません。あなたは '$ 0'、' $ 1'が何であるか(Swiftの本に記載されていますか?)、またはソートがうまくいかない理由を尋ねていますか? –

+1

ようこそ。私はあなたのタイトルがあなたの質問をカバーしていないことに気付きました - あなたが編集ボタンをクリックすると、あなたの質問を編集し、より関連性のあるものに変更することができます。 (配列を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引数、$2第3引数などです。この場合、sortは2つの引数をとります。 $0spendアレイの現在の要素で、$1は次の配列です。このようにsortと呼ぶでしょう。

let sorted = spend.sort{$0.date.timeIntervalSince1970 > $1.date.timeIntervalSince1970} 
関連する問題