2014-10-03 51 views
2

我有迅速展開代碼的一個醜陋的(但工作)塊:是否有一種簡潔的方式來快速打開和分配?

var color = UIColor.whiteColor() 
if (label.backgroundColor? != nil) 
{ 
    color = label.backgroundColor! 
} 

是否有迅速像我將會用C++做寫任何更簡潔的方式?

UIColor color = (label.backgroundColor==nil) ? 
    UIColor.whiteColor() : label.backgroundColor; 

回答

10

斯威夫特有 「無合併運算符」 ??它做了你 正在尋找什麼:

let color = label.backgroundColor ?? UIColor.whiteColor() 

正如documentation指出,a ?? b

a != nil ? a! : b 
快捷方式

其中b僅在a == nil(short-ci電路評估)。

+0

太棒了!我錯過了通過文檔閱讀。非常方便知道。 – Ideasthete 2014-10-03 16:52:55

+0

@ 0O0O0O0:'''只在Xcode 6 beta 5中引入,所以很容易錯過。 – 2014-10-03 16:59:52

相關問題