ios - swift 3;使用非可选字符串附加可选字符串

标签 ios swift string option-type swift3

我刚刚更新到 Xcode 8.0 beta 2 和 swift 3.0,我在一些现有的 swift 2.3 代码中遇到了关于可选字符串的错误:

Binary operator '+' cannot be applied to operands of type 'String' and 'String!'

变量“store”是一个“Store”对象的实例,具有属性 addressStreetaddressCity,两者都定义为 var addressStreet: String!

我在 addressLabel.text = ... 行上收到错误

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

我不明白!对我来说,似乎没有一个字符串是可选的,为什么我会收到这个错误,我该如何解决?

最佳答案

我不知道它为什么会崩溃,但下面的代码更安全并且没有 'String' + 'String!' 问题。试一试:

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

关于ios - swift 3;使用非可选字符串附加可选字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38225981/

相关文章:

ios - 如何在 IOS 中为下拉菜单元素创建文本过滤器

swift - 以编程方式选择 tableview 中的所有单元格,以便下次按下它们时调用 didDeselect

swift - Go 的空界面是否有 swift 的等价物?

string - StreamReader 的行到字符串数组

java - 将列表中的所有字符串打印成单个字符串的最优雅/简洁的方法是什么?

ios - 如何让钥匙串(keychain)在带有 ARC 的 iOS 5 中工作?

ios - 哪些 Firebase 离线功能可用于测验应用程序 (ios)

ios - 调整 SearchResultsTableView 的大小

ios - 如何在 Swift 中从 indexPath 获取 UITableViewCell 对象?

r - 从向量中提取字符元素