2017-06-15 49 views
-2

您是否赞成Swift开发者经常使用!= nil?以下是针对可选系统的反模式?!=无声明中的Swift optionals

var myStringArray: [String]? 

if myStringArray != nil { 
    textField.text = myStringArray?[0] 
    // some other code related to the array being there 
} 

风格的感觉。任何人都知道我可以学习的模式来改善我的风格吗?

+1

我更喜欢使用'if let'来检查选项卡上的'nil'。另一方面,这个问题看起来似乎可以基本上以意见为基础关闭。 – AtheistP3ace

+1

你也可以使用'guard let' – agscastaneda

+1

一些阅读:https://medium.com/@mimicatcodes/unwrapping-optional-values-in-swift-3-0-guard-let-vs-if-let-40a0b05f9e69。这个'gaurd let'使得你的解包选项在代码块中可用,而不是在if块内部,就像'if let'一样。很不错! – AtheistP3ace

回答

1

这是可选绑定的用途。

if let myStringArray = myStringArray { 
    textField.text = myStringArray[0] // use non-nil variable 
} 

而且在一个侧面说明,使用myStringArray.first代替myStringArray[0]。否则,如果数组为空,则代码将崩溃。或者你可以添加一个检查计数:

if let myStringArray = myStringArray, myStringArray.count > 0 { 
    textField.text = myStringArray[0] 
}