gpt4 book ai didi

swift - Willset 初始化后不保留值

转载 作者:行者123 更新时间:2023-11-28 12:21:36 25 4
gpt4 key购买 nike

您好,我有一个使用 willset 功能的可选变量。由于它是可选的,因此常规集将不起作用。在 will set 中,如果新值为 nil,我将变量设置为至少对其进行初始化。不幸的是,之后的值(value)也是零,还有什么想法吗?谢谢

代码:

var arrayOfString: [String]? {
willSet {
self.arrayOfString = newValue == nil ? [String]() : newValue
}
}

最佳答案

Since its an optional the regular set will not work

不正确。由于它不是计算属性 set 将不起作用。

您需要重新阅读有关willSetdidSet 的部分。 willSet任何值被写入变量之前被调用。 IE。无论您向 willSet 中的变量写入什么,都会立即被调用您的代码的赋值覆盖。

如果您分配nil,您将用nil 覆盖您的字符串数组。

通过做来简化

var arrayOfString: [String] = []

关于swift - Willset 初始化后不保留值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44635899/

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