gpt4 book ai didi

swift - UILabel textColor 属性标记为非空,但注释默认为 nil

转载 作者:行者123 更新时间:2023-11-30 11:00:41 29 4
gpt4 key购买 nike

UILabel的Apple类中

open class UILabel : UIView, NSCoding, UIContentSizeCategoryAdjusting {


open var text: String? // default is nil

open var font: UIFont! // default is nil (system font 17 plain)

open var textColor: UIColor! // default is nil (text draws black)

但让我完全困惑的是,fonttextColor 被标记为!所以它们不能是nil(否则崩溃),但注释指出

default is nil

我是不是错过了什么?或者不明白某事。正确,或者这是一些文档错误或者 var 分配错误!应该有吗?

最佳答案

在 Playground 上试试这个

import UIKit

let label = UILabel()
label.font = UIFont.systemFont(ofSize: 45)
print(label.font)

label.font = nil
print(label.font)

这将是结果:

Optional(<UICTFont: 0x7ff122c059d0> font-family: ".SFUIDisplay"; font-weight: normal; font-style: normal; font-size: 45.00pt)
Optional(<UICTFont: 0x7ff122e04390> font-family: ".SFUIText"; font-weight: normal; font-style: normal; font-size: 17.00pt)

Optional 似乎只是设置默认值的工具。想象一下当它不是可选的情况时的场景。没有简单的方法可以将其恢复原状。如果它是在 Swift 中,我打赌它会看起来像这样:

class Label {
var font: UIFont! = nil {
//Set some default font in here
didSet { if font == nil { font = UIFont.systemFont(ofSize: 17)} }
}
}

关于swift - UILabel textColor 属性标记为非空,但注释默认为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53418200/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com