1.可选项:闭包
? 声明可选项 var a: Int -> 1.有值(某一类型)someValue 2.nil函数
注意:可选项不可以直接参与计算 a! + 10 必须进行强制解包spa
2.解决可选项orm
< 1 > if let:快速赋值 而且判断值的对象是否为空对象
< 2 > guard let … else 为nil时 进入else分支 和if let用法相反 可以减小一层分支嵌套继承
< 3 > ?? (适用于 基本数据类型和字符串类型的可选项)快速合并空选项 —> 快速判断可选项是否为nil 若是为nil 给定为nil 状况下的默认值生命周期
3.闭包字符串
闭包最基本类型: ()-> ()变量
闭包使用场景 和GCD结合使用循环
3.1闭包的基本特性:
1>闭包是提早准备好的一段代码块
2>能够当参数传递
3>在须要回调的地方 执行闭包 完成结果的回调
4>在闭包中使用self 有可能产生循环引用
注意:(1)闭包中使用self
(2)闭包看成函数的参数进行传递 该参数 被一个比临时变量生命周期更长的变量保存记录 使用生命周期更长的变量完成后续的回调操做 这时才会产生循环引用
4.便利构造函数
以self的形式调用指定的构造函数
< 1 >能够失败 能够return nil
< 2 >仍是一个构造函数 必须使用self的形式来调用指定的构造函数 必须依赖于其余的构造函数来构造对象
< 3 >不可以被重写 也不可以被super
< 4 >可以被继承