swift で Dictionary型のvalueに配列をとる場合に、
各keyのvalueに対してappendする方法がわかりません。
下記のような場合を想定しています。
あるObjectクラスが存在します。
そのObjectのインスタンスを持つ配列objectArrayがあります。
DictionaryのkeyにObject.nameを設定します。
valueにはobjectインスタンスをappendします。
swift
1class Object { 2 var Name: String = "" 3 var Value:Int = 0 4 init(name:String, value:Int){ 5 Name = name 6 Value = value 7 } 8} 9 10var dic:[String:[Object]] = [:] 11 12let obj1 = Object(name: "name1", value: 1) 13let obj2 = Object(name: "name2", value: 2) 14let obj3 = Object(name: "name3", value: 3) 15let obj4 = Object(name: "name2", value: 4) 16let obj5 = Object(name: "name4", value: 5) 17let obj6 = Object(name: "name3", value: 6) 18 19let objectArray:[Object] = [ obj1, obj2, obj3, obj4, obj5, obj6] 20 21for object in objectArray{ 22 dic[object.name]?.append(object) 23}
最終的に
dic["test"][object1, object2, object3]
dic["test2"][object4]
というような結果が欲しいです。
しかし、上記のようなコードを実行するとdicに値が入ってきません。nilになります。
どうしたら想定の結果が得られるでしょうか。
よろしくお願いします!
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/30 16:05