美文网首页
9,swift的懒加载(格式:lazy var 变量:类型 =

9,swift的懒加载(格式:lazy var 变量:类型 =

作者: 枫叶1234 | 来源:发表于2020-10-19 06:27 被阅读0次

懒加载的介绍

  • swift中也有懒加载的方式
  • (苹果的设计思想:希望所有的对象在使用时才真正加载到内存中)
  • 和OC不同的是swift有专门的关键字来实现懒加载
  • lazy关键字可以用于定义某一个属性懒加载
  • 懒加载的使用

格式

lazy var 变量: 类型 = { 创建变量代码 }()

懒加载的使用

    // 懒加载的本质是,在第一次使用的时候执行闭包,将闭包的返回值赋值给属性
    // lazy的作用是只会赋值一次
    lazy var array : [String] = {
        () -> [String] in
        return ["why", "lmj", "lnj"]
    }()

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
    }()
}

相关文章

网友评论

      本文标题:9,swift的懒加载(格式:lazy var 变量:类型 =

      本文链接:https://www.haomeiwen.com/subject/icpcmktx.html