Swift閉包和OC的block一樣,只要是內(nèi)部的變量都會加上一個strong的強引用
/*解決循環(huán)引用三種方法
1.
unowned var weakself = self
2.
weak var weakself = self (此時weakself是可選項炫乓,要!解包)
3.捕獲列表(可以在調(diào)用"閉包"的時候,在我們的形參列表前面通過[]指定捕獲的對象步咪,告訴系統(tǒng)如何處理這些捕獲的值F纯E兹恕:缃)
block = { [unowned self]() -> Void in
self.view.backgroundColor = UIColor.redColor()
}
應(yīng)用場景:
什么時候用weak
| - 當(dāng)被保存的對象有可能提前釋放時校坑,用weak
什么時候用unowned
| - 當(dāng)被保存的對象使用時不會提前被釋放,就用unowned
*/
block = { [unowned self]() -> Void in
self.view.backgroundColor = UIColor.redColor()
}