设置可选文本时,UIlabel文本不显示"可选"字样?

iOS*_*Guy 3 uilabel ios swift

我一直在使用可选项.我已将字符串变量声明为可选项

var str: String?
Run Code Online (Sandbox Code Playgroud)

现在我在这个变量中设置了一些值str = "hello".现在,如果我打印这个可选项而不打开它,那么它打印为

可选("你好")

但是,如果我在标签上设置文本,self.label.text = str那么它只显示值

你好

请解释为什么它不会在标签上显示文字

可选("你好")

rma*_*ddy 6

text属性UILabel是可选的.UILabel足够聪明,可以检查text属性的值是设置为nil非零值还是非零值.如果不是nil,则显示正确解包(现在是非可选)值.

在内部,我想象代码的drawRect方法UILabel如下:

if let str = self.text {
    // render the non-optional string value in "str"
} else {
    // show an empty label
}
Run Code Online (Sandbox Code Playgroud)