Swift 4.2与(??)的包装问题

Hat*_*nzō 0 ios swift4.2

迅速4.2有奇怪的问题并解开 ??

简单的代码:

var someVar:String?

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

    subTitleLabel.text = "text one" + someVar ?? "unwrapped"
}
Run Code Online (Sandbox Code Playgroud)

编译器抛出错误:

可选类型'String?'的值 必须解包为'String'类型的值

Swift 4.2发生了什么变化?

vad*_*ian 5

这是因为运算符的优先级

的优先级+高于,??因此您必须添加括号

subTitleLabel.text = "text one" + (someVar ?? "unwrapped")
Run Code Online (Sandbox Code Playgroud)