Swift中的lazy属性相当于Objective C中的lazy Init getter

7c9*_*fdf 5 objective-c lazy-evaluation ios swift

Swift中的lazy属性是否相当于在Objective C中使用延迟加载模式覆盖getter?

Osc*_*ros 6

来自文档:

惰性存储属性是一个属性,其初始值在第一次使用之前不会计算.通过在声明之前写入lazy属性来指示延迟存储的属性.

所以,大多是,是的.

您必须始终将惰性属性声明为变量(使用var关键字),因为在实例初始化完成之后,可能无法检索其初始值.在初始化完成之前,常量属性必须始终具有值,因此不能声明为惰性."

请记住,在Swift上,您可以选择为您的属性声明自定义getter和setter:

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

  }
}
Run Code Online (Sandbox Code Playgroud)