[swift-users] Override Lazy Stored Property

John Buckley john at olivetoast.com
Thu Jan 11 04:56:20 CST 2018


I'm interested to know if overriding a lazy stored property in a sub-class
is recommended or not. For example:

class CustomSegue: NSStoryboardSegue {
    lazy var animator: CustomAnimator()

    override func prepare() {
         ....
    }
}

class CustomSlideRightSegue: CustomSegue {
     override lazy var animator: CustomAnimator(.slideRight)
}

This works fine and the compiler does not complain. However:

1. Why is overriding lazy stored properties supported, while overriding a
non-lazy stored property is not.

2. Is this behaviour intended and/or recommended.

3. I realise you can achieve the same result by overriding init in the
sub-class and assigning to a non-lazy property, however often this reduces
clarity and introduces un-necessary boiler-plate code (especially if init
takes a number of args).

Thanks!

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20180111/3c0ae02b/attachment.html>


More information about the swift-users mailing list