【Swift4】NSDictionaryを要素に持つNSMutableArrayをDictionaryのKey順にソート

自分は独学でiPhoneアプリを作っています。
初心者向けのSwiftの本を数冊とあとはインターネットで検索して調べています。
C言語の基礎知識とかはまったくないです。英語のApple Developerなんちゃらを読んでもさっぱり理解できません。
しかし、やりたいことが決まって大体のやりかたはネットで調べれば基本的なことはたいてい出てきますが、
たまにこの人どーやって調べてこのやり方にたどり着いたんだろうと思うことがたまにあります。
今回もそんな感じです。
そして自分はすぐに忘れてしまうし、先人のブログが消えるとわからなくなるのでここに劣化コピーを載せています。

今回は、配列に入ったディクショナリをその要素でソートしたかったんですが、なかなかやり方が分からず難儀しました。
今回の参考サイトはこちら。
[swift] NSDictionaryを要素に持つNSArray/NSMutableArrayをKey順にソート | BlueBear I/O
【Swift4】配列の中身(数値・文字・日付)を比較してソートする方法【Xcode9】 | ニートに憧れるプログラム日記

適当に調べながらプレイグラウンドでコードを書いたので冗長だったりするかも。
サンプルコード

import UIKit

var array = NSMutableArray()
var dic = NSDictionary()
var Date1 = Date()

Date1 = Date.init(timeIntervalSince1970: 0) // 今の時間
dic = ["date":Date1,
       "num":1]
array.add(dic)

var Date2 = Date()
Date2 = Date.init(timeIntervalSince1970: 60) // 1分後
dic = ["date":Date2,
       "num":2]
array.add(dic)

var Date3 = Date()
Date3 = Date.init(timeIntervalSince1970: 60*60) // 1時間後
dic = ["date":Date3,
       "num":3]
array.add(dic)

print(array)

//並び替え
//key順に並び替える、降順はascending:をtrue,昇順の場合はfalseとする
let sort_descriptor:NSSortDescriptor = NSSortDescriptor(key:"date", ascending:false)
array.sort(using: [sort_descriptor])

print(array)

ほんとこーゆーのってどうやってしらべてるんだろう?
とりあえずなんとかなってよかった。
うじゃうじゃ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です