初次使用ASIHttpRequest,出现EXC_BAD_ACCESS问题

场景:

使用ASIHttpRequest,异步请求数据,因为第一次使用,把request卸载了AppDelegae里。

问题:

[self.request startAsynchronous];

调用上面的方法,开始异步请求数据后。代码死在了:

ASIHTTPRequest.m内的

if (delegate && [delegate respondsToSelector:didStartSelector]) 

- (void)requestStarted
{
	if ([self error] || [self mainRequest]) {
		return;
	}
	if (delegate && [delegate respondsToSelector:didStartSelector]) {
		[delegate performSelector:didStartSelector withObject:self];
	}
	#if NS_BLOCKS_AVAILABLE
	if(startedBlock){
		startedBlock();
	}
	#endif
	if (queue && [queue respondsToSelector:@selector(requestStarted:)]) {
		[queue performSelector:@selector(requestStarted:) withObject:self];
	}
}

并报出了:EXC_BAD_ACCESS的错误。

解决:

查了很多资料,原来是异步请求后,放在AppDelegate里的ASIHttpRequest request的生命周期结束,并且被ARC释放了内存,导致请求时,无法回调delegate。

你可能感兴趣的:(初次使用ASIHttpRequest,出现EXC_BAD_ACCESS问题)