HOME > NSDictionary
NSDictionaryはキーがついた配列。配列Arrayの場合はhogeArr[0]等で要素にアクセスしますが、 Dictionaryの場合は、hogeDic["key1"]等でアクセスします。
NSObject
↑
NSDictonary
参考Appleサイト(英語):
Foundation Framework Reference NSDictionary Class Reference
参考:SwiftのArrayとDictionaryの使い方
Objective-Cで利用していたNSDictionaryがSwiftではDictionaryが新しく実装されていますので、Dictionaryを説明いたします。
この違いをいつも悩む時がありますので覚書に以下記載します。
Arrayは番号で要素を取り出す
var hogeArr: String[] = ["hoge1", "hoge2", "hoge3", "hoge4"];
println(hogeArr[0]);
DictionaryはKeyで要素を取り出す
var hogeDic: Dictionary = ["title": "swift-salaryman", "url": "http://swift-salaryman.com/"]
println(hogeDic["title"]);
var hogeDic: Dictionary = ["title": "swift-salaryman", "url": "http://swift-salaryman.com/"]
println(hogeDic["title"]);
//データ追加
hogeDic["pagerank"] = "3";
println(hogeDic["pagerank"]);
//要素個数
println(hogeDic.count);
//中身を一気に取得
println(Array(hogeDic.keys));//pagerank,title,url
println(Array(hogeDic.values));//3,swift-salaryman,http://swift-salaryman.com/
//データ更新
hogeDic.updateValue("0", forKey: "pagerank")
println(hogeDic["pagerank"]);
//データ削除
hogeDic.removeValueForKey("pagerank")
println(Array(hogeDic.keys));//title,url
上記例はDictionary型に自動でString型が配置されています。
var hogeDic: Dictionary = ["title": "swift-salaryman", "url": "http://swift-salaryman.com/"]
と宣言すると、
var hogeDic: Dictionary<String,String> = ["title": "swift-salaryman", "url": "http://swift-salaryman.com/"]
と同じになります。
同様に数字を含めてDictionaryを作成すると、同様に自動で型がセットされているようです。
var hogeDic: Dictionary = ["key1": 0, "key2": "test"]
と宣言すると、
var hogeDic: Dictionary<Int,String> = ["key1": 0, "key2": "test"]
と同じになります。
いつもQiita様には勉強させていただいています。。。
参考:Swift の Dictionary で nil を扱う
参考:Swiftで定数(let)のArrayの要素は変更できるけどDictionaryでは変更できない理由
参考:The Swift Programming Language - Collection Types(集合型、Array とか Dictionary)をまとめる
2021-05-14 14:21:41 | WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。
AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、
昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は... |
2021-05-06 14:04:37 | LINEのアニメーションスタンプ制作の落とし穴、、、失敗談
ゴールデンウィークにLINEスタンプを作成してみました。
作り切って申請も通したんですが、意図したアニメーションと違う、、、、
LINEクリエーターの画面だと、アニメーションのプレビュー... |
2021-05-01 18:05:35 | 久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。
忘れないようにメモ
エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。
ターゲット→ex... |
Tweet | |||
|