懒加载
懒加载
TaciturnKnightYQ 发表于2年前
懒加载
  • 发表于 2年前
  • 阅读 159
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 懒加载

懒加载

在 iOS 开发中,懒加载是无处不在的

  • 懒加载的格式如下:

lazy var person: Person = {    print("懒加载")    return Person()
}()
  • 懒加载本质上是一个闭包

  • 以上代码可以改写为以下格式

let personFunc = { () -> Person in
    print("懒加载")    return Person()
}
lazy var demoPerson: Person = self.personFunc()
  • 懒加载的简单写法

lazy var demoPerson: Person = Person()


import UIKit


class ViewController: UIViewController {


    // ``加载 - 本质上是一个闭包

    /**

        第一次访问属性时,会执行后面的闭包代码,将闭包的`结果`保存在 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()

    

    override func viewDidLoad() {

        super.viewDidLoad()


//        print(person)

    }


    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        print(demoPerson2)

    }


}


共有 人打赏支持
粉丝 5
博文 62
码字总数 26671
×
TaciturnKnightYQ
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: