留给自己的纪念,给自己点压力,也给自己点动力!
目标:1个月内学习swift 并使用swift重构工银现金快线。
阅读开源项目
一.函数标记 :
(1)override func (复写,重载 )
代表:重载方法
例子:
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.hexInt(0xf3f3f3)
// 设置空视图图片
noDataImg = UIImage(named: "noData_play_history")
// 设置空视图状态
configEmptStatus()
}
(2)escaping 逃离函数闭包 相当于block
(3)as 类型转换 是否 as左边是否为as右边相同类型或者子类
(4)fileprivate let (文件私有) 相当于当前文件的宏定义,用于定义全局的字符串宏
private: 私有属性和方法,仅在当前类中可以访问,不包括分类;
fileprivate: 文件内私有属性和方法,仅在当前文件中可以访问,包括同一个文件中不同的类。
(5)lazy var (懒加载)
(6)extension (扩展)
增加计算实例属性和计算类型属性
定义实例方法和类型方法
提供新的初始化器
定义下标
定义和使用新的内置类型
让一个存在的类型服从一个协议
(7)required init() {}
1、required修饰符只能用于修饰类初始化方法。
2、当子类含有异于父类的初始化方法时(初始化方法参数类型和数量异于父类),子类必须要实现父类的required初始化方法,并且也要使用required修饰符而不是override。
3.当子类没有初始化方法时,可以不用实现父类的required初始化方法。
(8) @IBOutlet weak var (xib连线一个控件)
(9) guard
与if语句相同的是,guard也是基于一个表达式的布尔值去判断一段代码是否该被执行。与if语句不同的是,guard只有在条件不满足的时候才会执行这段代码。你可以把guard近似的看做是Assert,但是你可以优雅的退出而非崩溃。
1.是对你所期望的条件做检查,而非不符合你期望的。又是和assert很相似。如果条件不符合,guard的else语句就运行,从而退出这个函数。
2.如果通过了条件判断,可选类型的变量在guard语句被调用的范围内会被自动的拆包 - 这个例子中该范围是fooGuard函数内部。这是一个很重要,却有点奇怪的特性,但让guard语句十分实用。
3.对你所不期望的情况早做检查,使得你写的函数更易读,更易维护。
(10) didSet willSet (kvo底层实现)
(11) @objc func 添加标记 因为oc是运行时demo,swift在编译时就决定相关事情,如果混编时需要运行时runtime获取swift相关类或者函数时,就需要@objc标识修饰,,,继承NSObject的类不需要@objc修饰,系统自动添加修饰符