`
hua397
  • 浏览: 53794 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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,谢谢原作者们^^

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics