Lazy 初始化技术早在 Objective C 时代经常被使用,是一种用来延时创建一些比较消耗资源的对象的技术。
这种技术在 iOS 开发里面很有用,确保只有在需要使用某些资源的时候才开始分配内存。
lazy var players = [String]()
非常简单,就一句话!
需要注意的是,声明 lazy 变量必须用 var 关键字,不能使用 let。因为常量对象初始化完成的时候必须有一个初始值。
使用 Closure 定义 lazy 属性:
lazy var players = {
var temporaryPlayers = [String]()
temporaryPlayers.append("John Doe")
return temporaryPlayers
}()
使用实例方法:
lazy var players: [String] = self.initialPlayers()
func initialPlayers() -> [String] {
var players = ["John Doe"]
return players
}
或类方法:
class TestClass {
lazy var players = TestClass.initialPlayers()
class func initialPlayers() -> [String] {
var players = ["John Doe"]
return players
}
}
很明显,一般情况下使用 Closure 方式创建是最简单的,能够一目了然。