1. 创建需要调用的对象 Person.swift
class Person: NSObject {
var name: String?
}
2. 实现方式
/**
第一次访问属性时,会执行后面的闭包代码,将闭包的 ’结果‘ 保存在 person 属性中
下次再访问,不会再执行闭包
如果没有lazy,会在 initWithCoder 方法中被调用,当 二进制的 storyboard 被还原成视图控制器对象之后,会被调用
提示: 在开始的时候,可以记忆语法
*/
lazy var person: Person = {
print("懒加载")
return Person()
}()
//----供参考,演示闭包-----
//1.定义闭包
let personFunc = {() -> (Person) in
print("懒加载测试..")
return Person()
}
//2.测试懒加载属性
lazy var demoPerson: Person = self.personFunc()
//----------
//懒加载的简单写法
lazy var demoPerson2: Person = Person()
3. 调用函数
override func viewDidLoad() {
super.viewDidLoad()
print(demoPerson2)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print(demoPerson2)
}