項(xiàng)目中遇到的一個比較容易忽略的而且容易導(dǎo)致循環(huán)引用的問題,這里記錄一下,供大家分享!
項(xiàng)目是一個聊天的SDK,在點(diǎn)擊會話進(jìn)入聊天頁面的時候,會懶加載一個名為 sendMessageView 的一個類似發(fā)送工具的自定義視圖,在這個視圖實(shí)例化的時候會設(shè)置一些事件的監(jiān)聽和默認(rèn)的基本配置.
然后什么也不做直接返回,發(fā)現(xiàn) ! ! !坑來了...... 產(chǎn)生了循環(huán)引用,sendMessageView的dealloc方法沒有走, 哦 賣 嘎! 發(fā)生了神馬 !∑q|?Д?|p
好了既然問題出現(xiàn)了,那么就讓我們來逐個擊破 ! !
1.第一步,我開始找我的 '谷哥' ?下載了一個檢測內(nèi)存泄漏的工具,大神編寫的 工具地址:點(diǎn)擊打開鏈接
2.第二步, 找來了幫手之后,就開始解決問題,首先檢查是否在 block 中使用了self ?,檢查后發(fā)現(xiàn)并沒有
3.第三步, 既然沒有這種問題,那么就使用比較直接的調(diào)試方法 ,注釋法! 我的常勝將軍 ! ! ! 把那些有懷疑的都給注釋掉! 運(yùn)行! ?d=====( ̄▽ ̄*)b 成功!疑犯找到了!
4.第四步, 找到疑犯之后,開始足一審問 審問........
5 第五步:疑犯已查出!發(fā)布公告! ?是 _name 下劃線訪問變量問題, ?? 修改成self. 點(diǎn)語法
總結(jié):下劃線訪問變量,和點(diǎn)語法有什么區(qū)別呢? 看這個文章:點(diǎn)擊打開鏈接
好了,大功告成 ! ! ! ??