Swift 3;附加可选的字符串与非可选的字符串

问题描述:

我刚刚更新到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

我不知道它为什么会崩溃,但下面的代码更安全,并没有'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