美文网首页
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