首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASIHTTPRequest问题

ASIHTTPRequest问题
EN

Stack Overflow用户
提问于 2010-10-06 15:36:10
回答 2查看 3.3K关注 0票数 2

还有谁对ASIHTTPRequest有这样的问题吗?似乎当我在后台线程中执行异步请求时,委托设置为实例,我可能会遇到麻烦,因为委托可以在请求(放入NSOperationQueue中)返回回调之前被释放。

ASIHTTPRequest似乎没有保留它的委托--另一方面,苹果的NSURLConnection保留了委托("NSURLConnection在初始化时保留它的委托。当连接完成加载、失败或取消时,它会释放委托。“)。

我是否应该确保在后台线程中执行同步ASIHTTPRequests以使其工作(而不是异步请求)?或者我应该甩了ASIHTTPRequest?或者我只是疯了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-07 15:46:34

假设您使用的是最新版本的ASIHTTPRequest,使用它(并避免崩溃)的正确方法是:

委派应保留请求(而请求不应保留委派)

当代理被销毁时(或当您想要取消请求时),代理应执行以下操作:

代码语言:javascript
复制
[request setDelegate:nil];    
[request cancel];
[request release];

这样你就不会崩溃了。(我在几个月前重写了ASIHTTPRequest中的委托处理,以避免其中的一些问题,并且在这样做之前,我与苹果的人核实了这是一种正确的处理方式。我的更改都在github上的官方ASIHTTPRequest库中,尽管自- ie以来还没有正式发布。这些更改不在v1.7版本中,因此在v1.7或更早的版本中,如果遵循上面的建议,您仍然可能会看到崩溃。)

票数 7
EN

Stack Overflow用户

发布于 2010-10-06 15:40:08

我不知道ASIHTTPRequests是否会保留对象,但您是否尝试在执行时保留它,并在结束时释放它?

对于这个非常好的包装器,我从来没有遇到过问题^^

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3870314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档