2016-12-28 51 views
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 

我能搶到第一3個變量,但因爲它是嵌套字典的另一個數組內無法搶到最後一個。如果有人可以指向我正確的方向抓住type_id。當我試過

typeId: dict["type_id"] as! Int 

它只是在控制檯上返回爲零。

UPDATE:所以要在這裏下車的答案之一,使用這條線從陣列瞎扯一個int作品

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

而是試圖從陣列搶一個字典,當我得到EXC_BAD指令

+0

能否請你分享你的迴應?或JSON或XML字符串 –

+0

看起來「forms」是一個數組,傳遞索引的整數格式而不是「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