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.
···
On Dec 21, 2015, at 5:14 PM, Erica Sadun via swift-users <swift-users@swift.org> wrote:
For a friend:
This won't work.
class DerpController {
private(set) var derp: Bool = {
return _findDerp() != nil
}()
On Dec 21, 2015, at 7:47 PM, Joe Groff <jgroff@apple.com> wrote:
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.
On Mon, Dec 21, 2015 at 6:54 PM, Erica Sadun via swift-users < swift-users@swift.org> wrote:
Thanks. Passed that along back.
-- E
On Dec 21, 2015, at 7:47 PM, Joe Groff <jgroff@apple.com> wrote:
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.