代理的return怎麼造成循環引用的,block的使用技巧

代理
用retain修飾
當你創建的時候你alloc   retainCount + 1
當你push的時候你 retainCount + 1   ——>>>>2
我們release的時候   -1   —>1
當我們設置代理的時候delegate = self returnCount + 1 ———>>>>2
當我們pop的時候returnCount -1  —>>1  這就造成了內存泄露
所以我們要用assign修飾
block(在非arc         arc裏面用__weak)
使用block在聲明屬性的時候你得用copy
使用__block修飾的外部局部變量可以在block的實現部分改值
使用__block修飾的外部局部變量可以在block的實現部分block本身的blockRetainCount不會加1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章