作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我需要显示它的 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/
我是一名优秀的程序员,十分优秀!