Swift 4.0学习之:懒加载

九: 懒加载

懒加载是一个在项目中特别常用的东西,在OC中,一般是通过重写getter方法来实现,但是在Swift里,多了一个叫 lazy 的修饰符,多么形象生动的命名。具体应用举例如下:
//在Swift中只需要通过 “lazy” + “=” + “闭包” 就可以实现懒加载
lazy var dataList:[Any] = {
//而且看这里,如果闭包是用来做懒加载的话,那么()-> () in return 全都可以省略
        ["zyt", 1, (4 , 5), ("name","zyt"), ["age":"25"]]
    }()

要注意的一点是:添加到父视图的操作,千万不要写到懒加载里面,会出问题的!

知识点:

//在声明控件的时候,直接用let修饰,看起来好像也行,如下
let label: UILabel = {
    let label = UILabel.init()
    label.text = "测试"
    label.frame = CGRect.init(x: 0, y: 0, width: 100, height: 100)
    return label
}()
//像上面这么写,运行之后,看起来好像也没问题,但是如果是需要跟用户交互的话,比方说需要点击事件,那么像上面这样写就不行了
let btn: UIButton = {
    let btn = UIButton.init(type: .custom)
    btn.frame = CGRect.init(x: 0, y: 150, width: 100, height: 100)
    //如果是let修饰的话,当走到这里时,self还是nil。所以这样创建的按钮是不会响应点击事件的
    btn.addTarget(self, action: #selector(switchTypeAction), for: .touchUpInside)
    return btn
}
//因此如果创建的控件需要跟用户交互的话,必须使用懒加载  lazy var
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值