連想配列変数っぽいもの
2018-03-06
どうも、氷翠です。
PHPでは「連想配列変数」とかっていいますが、特別宣言とかは必要なく、いきなり利用することができます。
しかし、Objective-CとかSwiftでは「辞書」と呼ばれます。
型としては「Dictionary型」と呼ばれます。
今回、氷翠は大量のデータを一度に扱うアプリケーションを作成しているので、わかりやすく扱うためにこの「Dictionary型」を使うことにしたわけです。
しかし、思ってる以上に面倒なこと!
で、完成形はこちら。
ウインドウの中に「NSTextView」を設置して結果を表示しているだけです。
しかし、今回の目的はあくまでの「Dictionary型の変数をソートする」ことにあります。
ご覧の通り、ソート前だとバラバラになっています。
var a = [Int: [String: String]]()
今回は実際のアプリケーションと同じような感じでDictionary型の変数を用意しました。
で、
a[0] = ["a": "あ", "b": "た"] a[1] = ["a": "い", "b": "ち"] a[2] = ["a": "う", "b": "つ"] a[3] = ["a": "え", "b": "て"] a[4] = ["a": "お", "b": "と"] a[5] = ["a": "か", "b": "な"]
と、この様にテスト用のデータを入力しておいたわけです。
これが、上の画像のソート前を見るとわかりますが、バラバラになっているのがわかります。
せめて、キーによるソートがしたい。
let a1 = a.sorted{ if $0.key == $1.key { return $0.value.first! < $1.value.first! } else { return $0.key < $1.key } }
ソート一つで結構な感じになっていますが、これが確実なんでしょう。
あ、変数「a1」としているのは、結果を入れておく変数なんですが、同じ変数には代入できませんでした。エラーになってしまいます。
コメントを残す