Swift 2.0条件赋值和语法

时间:2016-07-08 04:48:44

标签: swift if-statement

以下代码有效(someArray.objectForKey("someKey")类型为NSNumber):

var someInt:Int = 123

if(someDict["someKey"] != nil) {
    someInt = someDict["someKey"]!.integerValue
}

这样可行并且做我需要做的事情,但我几乎100%确定这不是它应该在Swift中完成的方式。

我正在寻找上述代码的更优雅的解决方案。

2 个答案:

答案 0 :(得分:3)

它被称为可选绑定

if let someValue = someArray["someKey"] as? Int { 
   someInt = someValue 
}

请阅读Swift Language Guide

中有关可选绑定的部分

答案 1 :(得分:3)

如果我理解你的问题,你可以做到

if let someInt = someArray.objectForKey("someKey")?.integerValue {

}

或者

someInt = someArray.objectForKey("someKey")?.integerValue ?? 0

其中0是默认值,如果someInt返回nil,则分配给objectForKey