ASIHTTPRequest问题

Rya*_*tta 2 iphone objective-c nsurlconnection asihttprequest

是否有其他人在ASIHTTPRequest中遇到此问题?似乎当我从后台线程中执行异步请求并将委托设置为实例时,我可能会遇到麻烦,因为在请求(放入NSOperationQueue)之前可以释放委托返回回调.

似乎ASIHTTPRequest不保留它的委托 - 另一方面,Apple的NSURLConnection确实保留了委托("NSURLConnection在初始化时保留其委托.它在连接完成加载,失败或被取消时释放委托.") .

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

Jos*_*phH 7

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

代表应该保留请求(并且请求不应该保留代理)

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

[request setDelegate:nil];    
[request cancel];
[request release];
Run Code Online (Sandbox Code Playgroud)

你不应该这样崩溃.(几个月前我在ASIHTTPRequest中重写了代理处理,完全是为了避免其中的一些问题,我和Apple的人一起检查过这是处理事情的正确方法.我的更改都在官方的ASIHTTPRequest存储库中在github上,虽然之后还没有正式发布 - 即.这些更改不在v1.7版本中,所以对于v1.7或更早版本,你仍然可以在遵循上述建议时看到崩溃.)

  • [请求clearDelegatesAndCancel]; [请求发布]; (2认同)