这可能听起来像一个新手问题,但我是iOS开发新手。
我在导航控制器中推送了一个视图,在该视图中点击某个按钮,我运行以下代码。
mUploadeImageConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
[request release];
if (mUploadeImageConnection) {
mUploadImageResponseData = [[NSMutableData data] retain];
} else {
[mUploadeImageConnection release];
}
我还实现了以下连接状态处理方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
当我发出mUploadeImageConnection
请求时,需要一些时间来获得响应。但我不是在等待回复并按下导航后退按钮,即我正在弹出视图,但我仍然可以使四个连接处理功能正常工作,尽管mUploadeImageConnection
请求发送到的视图弹出。如果didFailWithError
我正在显示一些alertView,在这种情况下显示会很奇怪,即显示alerView关于某些已经弹出的视图(不可见/用户来到上一个视图)。
所以现在我的问题
答案 0 :(得分:1)
如果要停止请求,请将NSURLConnection保留在变量中并调用
[myConnection cancel];
当用户点击后退按钮时。
例如,您可以使用委托方法
在导航控制器的委托中调用取消– navigationController:willShowViewController:animated:
通过测试将要显示的viewController是否是你的rootViewController。