轉載

MRC中使用 assgin 修飾代理,ARC中推薦使用weak 修飾代理

assign是指針賦值,不對引用計數進行操作,如果使用完畢以後,不把其置爲nil,就有可能產生野指針,這時候如果操作就會crash(很容易產生野指針錯誤: EXC_BAD_ACCESS);
而weak修飾的對象銷燬了就會將指針置爲nil,所以ARC中代理對象使用weak修飾更安全。

如果ARC中使用了assign修飾了代理對象,建議在 delloc 方法裏將代理對象置爲 nil,防止野指針的出現

  • (void)dealloc
    {
    self.delegate = nil;
    }

    1
    2
    3
    4

assgin 和 weak的常用用途

assign 一般用在基本數據類型上面, 比如int\double等,MRC中還用來修飾代理對象
weak 一般用來修飾代理對象, 或者用來解決循環引用的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章