Swift unowned和weak的區別

2021-07-25 21:47:57 字數 356 閱讀 5306

unowned和weak均為避免出現迴圈引用

unowned
unowned要求**獲的變數不能為nil,所以在closure中使用[unowned self] 必須保證self不能為空,所以當self被釋放後再執行closure會導致程式崩潰。

weak
weak允許**獲的值為可選型,即可以**獲的值為nil,當使用[weak self]時需要進行對self進行解包。或者使用

guard let strongself = self

else

swift unowned和weak的使用

通常的解釋是,考慮到物件的生命週期,您應該在unowned和weak之間進行選擇,但有時您可能仍然懷疑應該實際使用哪乙個,並且想知道unowned和weak哪乙個更好。眾所周知,swift利用良好的舊arc 自動引用計數 來管理記憶體,因此,正如我們習慣使用objective c一樣,我們必須通過明...

imooc SpringBoot高階之Web高階

將通用邏輯從業務邏輯中分離出來 before註解 在方法執行之前執行 after註解 在方法執行之後執行 pointcut註解 設定切點,在其他攔截中直接呼叫log 方法 記日誌建議採用logger類中的幾個級別,而不是直接列印在控制台 記錄一次http請求及處理結果 記錄http請求的內容 bef...

Robot Framework 環境搭建(Web)

安裝步驟 1.安裝python 2.7.14 2.安裝wxpython 2.8 3.安裝pip 安裝robortframework ride pip install robotframework ride 安裝robotframework selenium2library pip install u...