swift最新语法总结(懒加载)
2019-03-25 本文已影响0人
coder_xiang
附上我的swfit项目, 项目里面有整个swift应用使用框架, 网络请求框架, DSBridge原生与H5交互的用法, 反射知识的使用, WCDB数据库的封装使用, WebRTC音视频直播demo, socket的使用, socket协议的封装使用等等知识点. 希望对大家有用.-->
swfit完整项目2020持续更新完善
懒加载的介绍
- 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
}()
}