ASIHTTPRequest中的block

  先感慨一下,好深的坑...

 

  ASI很好用,特别是加了block之后,但内存是个问题,具体场景:先push,请求网络数据,然后pop,此时pop的那个controller的dealloc调不到.

 

  主要是因为在ASI的completionBloc里面调用了self或者成员变量,ASI的block就retain了self,导致cycle.

 

这帖子也说到了http://desheng.me/2012/03/02/%E8%B0%A8%E6%85%8E%E4%BD%BF%E7%94%A8asihttprequest%E7%9A%84block%E7%89%B9%E6%80%A7/

虽然绕过block也是一种方法,但感觉不爽.

 

再看老外的 http://thirdcog.eu/pwcblocks/

他说把self转成弱引用 正确的写法是__block typeof(self) bself = self;

(参照 : http://www.cocoachina.com/bbs/read.php?tid-115656.html)

 

对于property就用点操作符 bself.xxx

对于非property的成员变量就用->操作符 bself->xxx

 

  至此OK,谢谢原作者们^^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值