gpt4 book ai didi

objective-c - 正确处理 [[NSURLConnection alloc] initWithRequest : . .. ]

转载 作者:行者123 更新时间:2023-11-29 04:55:44 25 4
gpt4 key购买 nike

这听起来可能是一个新手问题,但我是 iOS 开发新手。

我在导航 Controller 中推送了一个 View ,并在该 View 中的某个按钮上单击我运行以下代码。

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请求时,需要一些时间才能获得响应。但我没有等待回复并按下导航后退按钮,即我正在弹出 View ,但我仍然让四个连接处理函数正常工作,尽管 View 来自 mUploadeImageConnection请求已发送被弹出。在 didFailWithError 的情况下,我显示一些alertView,在这种情况下显示会很奇怪,即显示有关已弹出的某些 View 的alerView(不可见/用户来到上一个 View )。

现在我的问题

  • 处理这种情况的最佳做法是什么?
  • 如何让我的四个功能停止?

最佳答案

如果你想停止请求,请将 NSURLConnection 保存在变量中并调用

[myConnection cancel];

当用户单击后退按钮时。

例如,您可以使用委托(delegate)方法在导航 Controller 的委托(delegate)中调用取消

– navigationController:willShowViewController:animated:

通过测试将要显示的 viewController 是否是您的 rootViewController。

关于objective-c - 正确处理 [[NSURLConnection alloc] initWithRequest : . .. ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com