2016-12-28 4 views
1

おそらく私は問題を正しく熟語しませんでしたが、別の配列の辞書の中に入れ子になっている辞書の配列のキーにアクセスする必要があります。私は私が得ていると思う最も近い私が最初の3つの変数をつかむことができますが、それは辞書の別の配列内にネストされたとして、最後の1をつかむことはできませんSwiftで辞書のネストされた配列のキーにアクセスしよう

name: dict["name"] as! String, 
speciesId: dict["species_id"] as! Int, 
identifier: dict["identifier"] as! String, 
typeId: dict["forms"]!["item0"]!["type_id"] as! Int 

です。誰かが掴むために正しい方向に私を指すことができる場合type_id。と私が試したとき

typeId: dict["type_id"] as! Int 

ただコンソールとしてnilとして返されます。

UPDATE:だから配列からint型をGABするために、このラインを使用して、ここでの答えの1のオフに行くのは

formId: (dict["egg_groups"] as! Array<Int>)[0] as Int! 

に動作しますが、配列から辞書をつかむしようとしたとき、私はEXC_BAD命令を取得

+0

あなたはあなたの回答を共有してください。またはJSONまたはXML文字列 –

+0

"フォーム"は配列で、 "item0"文字列ではなく整数形式のインデックスを渡すようです。 – bunty

+0

@DheerajD私はソースコードを見ることができますが、編集/コピーできるソフトウェアはありません。基本的に "フォーム"は、辞書として "item"を、配列を取得するためのキーとして "type_id"を持つ配列です – user4938361

答えて

2

これを試して、ここに正しいインデックスを渡してください0:

let typeId = (dict["forms"] as! Array<Dictionary<String,Any>>)[0]["type_id"]! as Int 
+0

コンソールエラーなしでEXC_BAD_INSTRUCTIONを実行し続けます。私はそれを取ることがありますか? – user4938361

+0

最後に ''を ''に変更して作業するコードを得ました。これを反映するためにあなたのコメントを変更し、私はあなたの答えを受け入れたものとしてマークします。ありがとうございました!! – user4938361

+0

私は答えを編集しました。それを受け入れてください。ありがとう! – bunty

関連する問題