> On Dec 21, 2015, at 5:14 PM, Erica Sadun via swift-users > <[email protected]> wrote: > > For a friend: > > This won't work. > > class DerpController { > private(set) var derp: Bool = { > return _findDerp() != nil > }() > > private func _findDerp() -> AnyObject? { > return nil > } > } > > > but this works: > > private func _findDerp() -> AnyObject? { > return nil > } > > class DerpController { > private(set) var derp: Bool = { > return _findDerp() != nil > }() > > } > > Is it because the var member cannot depend on another member during setup? > Thanks in advance for insight. >
Yeah, instance methods can't be called until `self` is fully initialized, since they may themselves touch the uninitialized instance. In addition to making the function global, you could also make it a static method to preserve namespacing.
_______________________________________________ swift-users mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-users
