Something I still not quite understand about Swift ... let's say I want a property that instantiates a class in a base class used for several sub classes, e.g. ...
let horse = Horse();
Is horse
instantiated right after app/class initialisation or when the property is accessed for the first time?
On the other hand using lazy var
guarantees that the property is only instantiated the first time it is accessed ...
lazy var horse = Horse()
But then horse
is not a constant. So in this case if I access horse
multiple times I would get multiple instances of horse
created, right?
What if I wanted both, a lazy property that is also a constant?