我有一个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