gpt4 book ai didi

iOS/swift : Can't assign optional String to UILabel text property

转载 作者:可可西里 更新时间:2023-11-01 00:37:55 24 4
gpt4 key购买 nike

UILabel 有一个文本属性,它是一个可选的字符串,但它的行为似乎像一个隐式展开的可选。为什么我不能给它分配另一个可选字符串?谢谢。

@IBOutlet weak var tweetContent: UILabel!

...

var unopt: String = "foo"
var opt: String? = "bar"
var opt2: String?
opt2 = opt //Works fine
cell.tweetContent.text? = unopt //Works fine
cell.tweetContent.text? = opt //Compile error: Value of optional type 'String?' not unwrapped

最佳答案

你不需要打开 text .

离开 text作为String? (又名 Optional<String>)

cell.tweetContent.text = unopt // Works: String implicitly wraps to Optional<String>
cell.tweetContent.text = opt // Works: Optional<String>

展开的位置 textString?进入 String .

cell.tweetContent.text? = unopt // Works: String
cell.tweetContent.text? = opt // Fails: Optional<String> cannot become String

更新

也许这里需要多解释一下。 text?比我原先想象的更糟,不应该使用。

想到text = valuetext? = value作为功​​能setText .

text =有签名func setText(value: String?) .记住,String?Optional<String> .此外,无论 text 的当前值如何,它都会被调用。 .

text? =有签名func setText(value: String) .这是问题所在,它仅在 text 时被调用有一个值。

cell.tweetContent.text = nil
cell.tweetContent.text? = "This value is not set"
assert(cell.tweetContent == nil)

关于iOS/swift : Can't assign optional String to UILabel text property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28608649/

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