カスタムオブジェクトの配列をプロパティ値で並べ替えるにはどうすればいいですか? 質問する

カスタムオブジェクトの配列をプロパティ値で並べ替えるにはどうすればいいですか? 質問する

という名前のカスタム クラスがありImageFile、このクラスに次の 2 つのプロパティが含まれているとします。

class ImageFile {
    var fileName = String()
    var fileID = Int()
}

それらの多くは配列に格納されます:

var images : Array = []

var aImage = ImageFile()
aImage.fileName = "image1.png"
aImage.fileID = 101
images.append(aImage)

aImage = ImageFile()
aImage.fileName = "image1.png"
aImage.fileID = 202
images.append(aImage)

画像配列を「fileID」で昇順または降順で並べ替えるにはどうすればいいですか?

ベストアンサー1

まず、反復処理時にメソッドを呼び出せるように、配列を型付き配列として宣言します。

var images : [imageFile] = []

次に、次のように実行します。

スイフト2

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

スイフト3

images.sorted(by: { $0.fileID > $1.fileID })

スイフト5

images.sorted { $0.fileId > $1.fileID }

上記の例では、結果が降順で表示されます。

おすすめ記事