- swift 3.0 去除了 Foundation 的 NS 前缀
- 多用 struct 类
OC 与 swift3.0 的一些明显区别
|
|
注释的技巧:
// MARK: -
标记,等于 OC 的#pragma mark -
// TODO:
警告标记1// FIXME:
警告标记2 xcode 8 才有option + command + /
快捷注释
小Tips
- ?? 是一个简单的三目,如果有值,使用值,如果没有值,使用 ?? 后面的值替代
- guard let 守护一定有值,如果没有值,直接返回
- if let / var 连用语法,目的也是判断是否有值
- guard let & if let 的技巧,使用同名的变量接收值,在后续使用的都是非空的值,不需要解包,好处可以避免起名字的烦恼
字符串
- UTF8 编码每个汉字为3个字节。
- let dateStr = String(format:”%02d:%02d:%02d”, a, b, c)
外部参数
- 外部参数就是在形参前加一个名字
- 外部参数不会影响函数内部的细节
- 外部参数会让外部调用方看起来更加的直观
- 外部参数如果使用 _(下划线),在外部调用函数时,会忽略形参的名字
_ 下划线
- 在swift中
_
就是可以忽略任何不感兴趣的内容 - 如果某个参数从来没有被用到,可以使用
_
(下划线) 来代替
函数默认值
- 通过给参数设置默认值,在调用的时候,可以任意组合参数,如果不指定,就使用默认值
闭包
|
|
|
|
|
|
GCD
- 说明:将任务添加到队列,指定执行任务的函数
- (队列调度任务(block/闭包),以同步/异步的方式执行)
|
|
尾随闭包
- 函数的最后一个参数是闭包,函数参数可以提前结束,最后一个参数直接使用 {} 包装闭包的代码
解除循环引用的方式
|
|
|
|
|
|