var sectionArray:[[String:Any]] = [ ["sectionName":"Time Cards To Approve","sectionData": [["fname":"true detective","date":"may 20"],["fname":"abbas","date":"may 10"]],"expanaded":false], ["sectionName":"Message Log","sectionData":[["movie":"true detective","event":"Bring food","date":"May 19"],["movie":"false detective","event":"no shoot today","date":"may 20"]],"expanaded":false] ]
當我嘗試下面的代碼時,我想獲取 fname,它顯示錯誤,如 **error: Execution was interrupted, reason: signal SIGABRT。行程一直停留在被中斷的地方,使用“thread return -x”回傳運算式求值前的狀態。**
let ni = sectionArray[0]
let mi = ni["sectionData"] as! [String:String]
let sh = mi["fname"]
uj5u.com熱心網友回復:
你不能轉換,ni["sectionData"] as! [String:String]
因為它不是一個陣列,[String:String]你不應該使用!.
試試這個:
if let mi = ni["sectionData"] as? [[String:String]] {
print("---> mi: \(mi) ")
let sh1 = mi[0]["fname"]
let sh2 = mi[1]["fname"]
print("---> sh1: \(sh1) \n")
print("---> sh2: \(sh2) \n")
}
您當然也可以使用 for 回圈,例如:
if let mi = ni["sectionData"] as? [[String:String]] {
for i in mi.indices {
print("---> sh: \(mi[i]["fname"]) ")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/478929.html
下一篇:創建包含特定元素的陣列串列
