Swift 避免循環(huán)引用

1、block

self.dataBack = { [weak self] (result) in?

self?.dataArr = result as! [String]

? ?}

? ? block 通過 [weak self] 將self的強引用改為弱引用


2、delegate

一般聲明delegate 屬性的時候,用weak修飾。tableView的delegate實現(xiàn)也是如此

weak open var delegate: UITableViewDelegate?

1)自定義代理協(xié)議的時候,應(yīng)繼承NSObjectProtocol,這時使用weak不會報錯。

因為'weak' must not be applied to non-class-bound 'CustomViewDelegate'; consider adding a protocol conformance that has a class bound?

得修飾一個有類綁定的協(xié)議

2)@objc?

? ? 聲明代理協(xié)議的時候,如果前面有@objc關(guān)鍵字的話, 也可以用weak修飾delegate屬性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.weak和assign區(qū)別 修飾變量類型的區(qū)別: weak 只可以修飾對象。如果修飾基本數(shù)據(jù)類型,編譯器會報錯...
    coderjon閱讀 1,125評論 0 1
  • 出題者簡介: 孫源(sunnyxx),目前就職于百度,負責(zé)百度知道 iOS 客戶端的開發(fā)工作,對技術(shù)喜歡刨根問底和...
    戈多_于勒閱讀 1,884評論 0 5
  • 摘自: http://www.cocoachina.com/ios/20150803/12872.html 說明...
    program袁閱讀 932評論 1 3
  • 昨晚聊起大學(xué)的變化,我問PP我這四年什么變化,他說變得不愛玩了,我以前很愛玩嗎? 大學(xué)第一次準(zhǔn)備看的畢業(yè)送舊晚會,...
    仂七閱讀 154評論 0 0
  • 黃沙萬里他一去幾年不歸 月圓月缺寂寞空庭她望眼欲穿 他說黃沙百戰(zhàn)穿金甲,不破樓蘭終不還 男人莫因卿卿我我而失了氣節(jié)...
    蟬棲月影閱讀 231評論 0 0

友情鏈接更多精彩內(nèi)容