swift中是通过专门的关键字(lazy)来实现懒加载;
- 直接懒加载赋值
class student: NSObject {
lazy var str: String = "需要时再调用";
}
let s:student = student()
print(s.str)
- 懒加载赋一个函数
class student: NSObject {
lazy var str: String = student.test();
static func test() -> String {
return "需要时再调用"
}
}
let s:student = student()
print(s.str)
- 懒加载赋一个闭包
class student: NSObject {
lazy var str: String = {
return "需要时再调用"
}()
}
1、lazy关键字修饰一个变量就可以实现懒加载
2、懒加载的本质是,在第一次使用的时候使用调用,只会赋值一次
3、swift开发中因为方式三书写比较简单,因此经常使用闭包的形式进行懒加载
- 懒加载数组
class student: NSObject {
lazy var arr:[String] = {
() -> [String] in
return ["1","2","3"]
}()
}
- 懒加载一个控件
class student: NSObject {
lazy var btn:UIButton = {
let btn = UIButton()
btn.backgroundColor=UIColor.red
btn.frame=CGRect(x: 100, y: 100, width: 100, height: 40)
return btn
}()
}