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

时间:2018-10-31 13:02:02

标签: ios swift4.2

swift 4.2出现奇怪的问题,而??则打开了包装

简单代码:

var someVar:String?

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

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

编译器抛出错误:

  

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

Swift 4.2中发生了什么变化?

1 个答案:

答案 0 :(得分:5)

这是因为operator precedence

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

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