gpt4 book ai didi

swift - 有没有办法判断惰性变量是否已初始化?

转载 作者:搜寻专家 更新时间:2023-10-30 21:51:22 25 4
gpt4 key购买 nike

在我需要显示它的 View 之前,我不想初始化 View Controller ,所以我将它放在一个惰性变量中,例如:

lazy var foo: NSViewController! = {
let foo = NSViewController()
foo.representedObject = self.representedObject
return foo
}()

// ...

override var representedObject: Any? {
didSet {
if foo != nil {
foo.representedObject = representedObject
}
}
}

self.representedObject 是在 foo 被引用之前设置的,但是每次我调用 if foo != nil 时,它都会初始化 :c

有什么方法可以测试 foo 是否已经设置了吗?

最佳答案

使用 Swift 内置惰性语义的较短版本:

struct Foo {
lazy var bar: Int = {
hasBar = true
return 123
}()
private(set) var hasBar = false
}

只需检查 hasBar 即可。

关于swift - 有没有办法判断惰性变量是否已初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40848152/

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