先感慨一下,好深的坑...
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,谢谢原作者们^^
分享到:
相关推荐
ASIHTTPRequest,用于获取下载及其相关处理与应用的功能函数
使用iOS SDK中的HTTP网络请求API,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,
ASIHttpRequest 库中文手册,里面提供了一些很简单的例子。
ios开发框架 ASIHttpRequest 资源来源于网上 非原创
asihttprequest是目前做移动平台游戏上比较便捷的http通信第三方库
ASIHTTPRequest 源码 、底层构架
ASIHTTPRequest实现资源的下载,断点续传
ASIHTTPRequest使用介绍
ASIHTTPRequest是简单易用的,它封装了CFNetwork API。使得与Web服务器通信变得更简单。它是用Objective-C编写的,可以在MAC OS X和iPhone应用中使用。 它适用于执行基本的HTTP请求和互动(或者说是反馈)。...
此为ASIHTTPRequest打包的Frameword,直接导入到工程即可使用。
ASIHTTPRequest+UITableView实现多个下载任务,没用到重用机制,还有没有实现断点续载,很简单的一个demo,相信初学者都能看懂,还写了一些注释。
ASIHTTPRequest网络请求集合,直接引入到项目中使用。
ASIHTTPRequest 包,及导入办法。而且还有git的官方例子
该demo最主要的功能是在用ASIHttpRequest 下载,(当然同样也适用于上传),在弹出的alert框中显示下载(或是上传数据)的进度 在这里注意:如果是下载较大的文件,进度条会缓慢进行;相反如果下载的文件很小,那...
iphone 网络请求 类库 网络处理api iphone 开发必备类库程序源代码