lazy

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 3,338评论 3 25
  • 延时加载或者说延时初始化时很常用的优化方法。 在特定环境下才会使用到的存储属性,可以使用 lazy class C...
    fordring2008阅读 512评论 0 0
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,874评论 0 6
  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 3,418评论 0 50
  • 一、简介 延迟加载就是我们真正使用某个对象的时候,这个对象才会被创建出来。而在hibernate中的意思就是只有我...
    yjaal阅读 667评论 0 0