ASIHTTPRequest, EXC_BAD_ACCESS when request did finished

我只是一个虾纸丫 提交于 2019-12-01 09:29:34

Are you sure that your class that implements - (void)requestFinished:(ASIHTTPRequest *)request is still there when the request finishes? It looks to me like the class gets deallocated too early. Note that the delegate property does not retain its content.

You could add a [self retain] to doDownload and a [self release] to - (void)requestFinished:(ASIHTTPRequest *)request, but make sure (!) that [self release] doesn't get called too often. This is also a possible memory leak if a request would never finish. It would be best to retain your class somewhere else.

You might also try to debug with NSZombieEnabled set to YES to find the error.

Following line of your code seems to be wrong.

[request setDidFinishSelector:@selector(requestFinished)];

requestFinished method has an argument (ASIHTTPRequest *).
Therefore you should add ":", when you set a selector like as follows.

[request setDidFinishSelector:@selector(requestFinished:)];

[request responseString];

Check retainCount of request before this call. Propably it equals zero :) If that - you shouldn't forget to retain it when you creates it in doDownload method.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!