【swift基础】08在swift如何使用闭包、懒加载、和自定义类
来源:互联网 发布:通信软件slack 编辑:程序博客网 时间:2024/06/05 03:04
闭包
- 闭包定义
- 闭包简化 - 尾随闭包
- 闭包参数
- 闭包返回值
- 闭包的循环引用
weak var weakSelf = selfdemo("zhangsan") { (_) -> Int in print(weakSelf?.view.backgroundColor) return 20}
懒加载
lazy var demoView: UIView = { let v = UIView(frame: CGRectMake(10, 10, 100, 100)) v.backgroundColor = UIColor.redColor() return v}()
- 格式:
lazy var 变量: 类型 = { 创建变量代码 }()
- 懒加载的写法本质上是定义并执行一个闭包
getter & setter
自定义 Person 类
class Person: NSObject { var name: String? var age: Int?}
getter & setter
var _name: String?var name: String? { get { return _name } set { _name = newValue }}
- 在
Swift
中以上形式的 getter & setter 很少用
didSet
- 在 OC 中,我们通常希望在给某一个变量赋值之后,去做一些额外的操作
- 最经典的应用就是在自定义 Cell 的时候,通过模型的设置方法完成 Cell 的填充
var length: Int? { didSet { timeStr = String(format: "%02d:%02d:%02d", arguments: [length! / 3600, (length! % 3600) / 60, length! % 60]) }}var timeStr: String?
计算型属性
var title: String { get { return "Mr " + (name ?? "") }}
- 只实现
getter
方法的属性被称为计算型属性,等同于 OC 中的ReadOnly
属性 - 计算型属性本身不占用内存空间
- 不可以给计算型属性设置数值
- 计算型属性可以使用以下代码简写
var title: String { return "Mr " + (name ?? "")}
构造函数
init(dict: [NSObject: AnyObject]) { name = dict["name"] as? String age = dict["age"] as? Int}
析构函数
deinit { print("88")}
0 0
- 【swift基础】08在swift如何使用闭包、懒加载、和自定义类
- Swift基础 闭包
- Swift语法基础:3 - Swift的函数和闭包
- Swift--08闭包使用
- Swift-闭包的使用和总结
- Swift 基础学习(闭包)
- swift基础语法--闭包
- 如何在原有的Objective-C中使用Swift和在Swift中使用Objective-C
- Swift使用闭包表达式
- Swift闭包的使用
- Swift-闭包简单使用
- Swift 函数,闭包使用
- swift闭包的使用
- Swift 闭包的使用
- Swift闭包的使用
- Swift 基础语法三--函数和闭包
- Swift基础(八)函数和闭包
- swift 函数和闭包
- can't login openstack dashboard
- Cognos Analytics 11 震撼来袭——用户体验大幅提升!
- Windows 版本说明,Enterprise、Ultimate、Home、Professional知多少?
- window学习点滴(一步步总结,常用命令)
- Cloudera 向集群添加主机
- 【swift基础】08在swift如何使用闭包、懒加载、和自定义类
- 软件设计师数据结构之线性结构复习小结
- Shader Properties
- android开发常用网址收集
- 人脸集数据库
- 微信用户快赶上QQ了,达到了7.62亿
- 面向对象_继承
- 机器学习过拟合问题
- javascript==和 ===