gpt4 book ai didi

iphone - 创建和取消 NSURLConnection

转载 作者:行者123 更新时间:2023-12-03 19:05:49 27 4
gpt4 key购买 nike

当我允许加载完成时,我有一个 NSURLConnection 工作正常。但是如果用户点击后退按钮,意味着 webview 将消失,我想取消正在进行的 NSURLConnection。但是,如果在调用 viewWillDissapear 时将 webview 调用到此类中,那么我会这样做:

[conn cancel]

我收到 NSINValidArgument 异常。

连接在 .h 文件中定义为实例数据,如下所示:

NSURLConnection *conn;

异步在这里启动:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:articleURL]];

if ([NSURLConnection canHandleRequest:request] && reachable) {
// Set up an asynchronous load request
conn = [NSURLConnection connectionWithRequest:request delegate:self];
loadCancelled = NO;
if (conn) {
NSLog(@" ARTICLE is REACHABLE!!!!");
self.articleData = [NSMutableData data];
}
}

最佳答案

出现异常的原因是您将自动释放对象保存到实例变量中。
当用户点击后退按钮时,“conn”将立即自动释放。之后,您调用取消。因此,你有异常(exception)。
为了防止这种情况,当您将 NSURLConnection 对象保存在实例变量中时,应该保留它。

conn = [[NSURLConnection connectionWithRequest:request delegate:self] retain];

conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];

不要忘记在 dealloc 方法中释放它。

关于iphone - 创建和取消 NSURLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126056/

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