iOS相关 | Swift相关的注意点

一、swift基本使用
1.1 常量和变量
   let 定义常量,一经赋值不允许再修改
   var 定义变量,赋值之后仍然可以修改
注意:
   1.应该尽量先选择常量,只有在必须修改时,才需要修改为 var
   2.在 Xcode 7.0 中,如果没有修改变量,Xcode 会提示修改为 let

1.2 可选项Optional
   1) 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil
   2) 定义变量时,在类型后面添加一个 ?,表示该变量是可选的
   3) 变量可选项的默认值是 nil
   4) 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
   5) 如果 Optional 值是 nil,不允许参与计算,只有解包(unwrap)后才能参与计算,在变量后添加一个 !,可以强行解包
注意:必须要确保解包后的值不是 nil,否则会报错
   6) ?? 运算符可以用于判断 变量/常量 的数值是否是 nil,如果是则使用后面的值替代
在使用 Swift 开发时,?? 能够简化代码的编写
例:
let = "\(str ?? "")" + "...." //如果str为nil时赋值为"" ,如果不为nil时取str

1.3 控制流
   guard:guard 是与 if let 相反的语法,Swift 2.0 推出的.使用 guard 的好处:能够判断每一个值;在真正的代码逻辑部分,省略了一层嵌套

二、闭包
闭包(Block) 的循环引用小结

Swift

[weak self]

self是可选项,如果self已经被释放,则为nil

[unowned self]

self不是可选项,如果self已经被释放,则出现野指针访问

Objc

__weak typeof(self) weakSelf;

如果self已经被释放,则为nil

__unsafe_unretained typeof(self) weakSelf;

如果self已经被释放,则出现野指针访问

你可能感兴趣的:(iOS相关 | Swift相关的注意点)