首页 > 解决方案 > Swift 4.2 解包问题 (??)

问题描述

swift 4.2有奇怪的问题并用??

简单的代码:

var someVar:String?

override func viewDidLoad() {
   someOp = "print some string"

    subTitleLabel.text = "text one" + someVar ?? "unwrapped"
}

编译器抛出错误:

可选类型“字符串?”的值 必须解包为“字符串”类型的值

Swift 4.2 发生了什么变化?

标签: iosswift4.2

解决方案


这是因为运算符优先级

的优先级+高于??所以你必须添加括号

subTitleLabel.text = "text one" + (someVar ?? "unwrapped")

推荐阅读