lazy attribute in Swift equivalent to lazy Init getter in Objective C

ios, lazy-evaluation, objective-c, swift

Solution

From the docs:

A lazy stored property is a property whose initial value is not calculated until the first time it is used. You indicate a lazy stored property by writing the lazy attribute before its declaration.

So, mostly, yes.

You must always declare a lazy property as a variable (with the var keyword), because its initial value may not be retrieved until after instance initialization completes. Constant properties must always have a value before initialization completes, and therefore cannot be declared as lazy.”

Remember that on Swift you have the option to declare custom getters and setters for your properties:

var name : String?{
  get{
    return "Oscar"
  }
  set(newValue){

  }
}

Problem

Is the lazy attribute in Swift equivalent to overriding the getter with a lazy loading pattern in Objective C?

Original source