2016-07-06 78 views
1

我剛剛更新到Xcode的8.0 Beta 2和3.0迅速,而且我得到在我的一些現有的SWIFT 2.3代碼中的錯誤,關於可選字符串:Swift 3;附加可選的字符串與非可選的字符串

二進制運算符'+'不能應用於'String'類型的操作數,並且 'String!'

變量「店」是性質addressStreetaddressCity「存儲」 -object的實例,既定義爲var addressStreet: String!

我得到的addressLabel.text = ...線誤差

if store != nil { 
    addressLabel.text = store!.addressStreet + String(", ") + store!.addressCity 
} 

我不明白!對我來說,似乎沒有任何字符串是可選的,爲什麼我得到這個錯誤,我該如何解決它?

+0

奇,這部作品在雨燕2.2 http://swiftlang.ng.bluemix.net/#/repl/577d1066fc6e90d25e4ad0d5 – Alexander

+0

呀,和2.3 .. – Wiingaard

+0

你真的不應該濫用隱含展開自選喜歡這個。 – Alexander

回答

1

我不知道它爲什麼會崩潰,但下面的代碼更安全,並沒有'String' + 'String!'問題。試試看:

if let store = store, street = store.addressStreet, city = store.addressCity { 
    addressLabel.text = "\(street), \(city)" 
} 
+3

'addressLabel.text = street +「, 「+城市」比較好,國際海事組織。 – Alexander

+0

@AMomchilov關於'「\(街道),\(城市)」'? 「+城市」看起來對我來說太PHP了:) – Arsen

+0

那麼PHP使用'.'作爲字符串連接,所以... – Alexander