Swift 中的 Lazy 初始化

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 方式创建是最简单的,能够一目了然。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值