以下代码有效(someArray.objectForKey("someKey")
类型为NSNumber
):
var someInt:Int = 123
if(someDict["someKey"] != nil) {
someInt = someDict["someKey"]!.integerValue
}
这样可行并且做我需要做的事情,但我几乎100%确定这不是它应该在Swift中完成的方式。
我正在寻找上述代码的更优雅的解决方案。
答案 0 :(得分:3)
它被称为可选绑定
if let someValue = someArray["someKey"] as? Int {
someInt = someValue
}
中有关可选绑定的部分
答案 1 :(得分:3)
如果我理解你的问题,你可以做到
if let someInt = someArray.objectForKey("someKey")?.integerValue {
}
或者
someInt = someArray.objectForKey("someKey")?.integerValue ?? 0
其中0是默认值,如果someInt
返回nil,则分配给objectForKey
。