我有一個plist中包含2個整數值的數組。我可以讀取第一個值使用此代碼沒有問題檢查數組是否包含索引值Swift
let mdic = dict["m_indices"] as? [[String:Any]]
var mdicp = mdic?[0]["powers"] as? [Any]
self.init(
power: mdicp?[0] as? Int ?? 0
)
不幸的是,一些plists沒有第二個索引值。所以打電話給這個
power: mdicp?[1] as? Int ?? 0
return nil。我如何檢查是否有索引,因此只有當值存在時才抓取值?我試圖把它包裝在一個if-let聲明中
if let mdicp1 = mdic?[0]["powers"] as? [Any]?, !(mdicp1?.isEmpty)! {
if let mdicp2 = mdicp1?[1] as! Int?, !mdicp2.isEmpty {
mdicp2 = 1
}
} else {
mdicp2 = 0
}
但我迄今爲止的嘗試都讓多個控制檯錯誤。
如果'mdicp'只有一個項目,這將崩潰。數組不是像字典,如果沒有找到鍵,它將返回'nil'。對於數組,如果索引超出邊界,則會崩潰。 – Rob