swift 4.2出现奇怪的问题,而??
则打开了包装
简单代码:
var someVar:String?
override func viewDidLoad() {
someOp = "print some string"
subTitleLabel.text = "text one" + someVar ?? "unwrapped"
}
编译器抛出错误:
可选类型'String?'的值必须解包为type的值 “字符串”
Swift 4.2中发生了什么变化?
答案 0 :(得分:5)
这是因为operator precedence。
+
的优先级高于??
,因此您必须添加括号
subTitleLabel.text = "text one" + (someVar ?? "unwrapped")