Я не хочу, чтобы инициализировать контроллер представления, пока я не должен показывать свою точку зрения, так что я его ленивым вар, как:.Есть ли способ узнать, был ли инициализирован ленивый var?
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
инициализирует foo
: с
есть ли способ, что я могу проверить, если foo
имеет уже были установлены?
Итак, не существует способа определить, была ли указана опция «lazy var» раньше? –
Я уверен, что есть какой-то способ, если вы распакуете свою собственную структуру данных как небезопасную память. Это было бы фантастически хрупким, но все в конечном счете было бы просто байтами, поэтому оно должно быть где-то узнаваемо. Но с точки зрения «можно ли это сделать безопасно и проще, чем выше?» Я так не верю. 'lazy' - очень простой, жестко закодированный шаблон, и он не раскрывает его внутренности. –