已弃用的 NSURLConnection 方法,有替代方法吗?

Posted

技术标签:

【中文标题】已弃用的 NSURLConnection 方法,有替代方法吗?【英文标题】:Deprecated NSURLConnection Methods, is there an alternative? 【发布时间】:2012-02-28 14:12:26 【问题描述】:

我正在设置一个 NSURLConnection 来访问远程服务器:

NSURL *url = [[NSURL alloc] initWithString:projectURL];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

使用以下委托方法:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse

所有这些方法都说“在 ios 2.0 到 iOS 4.3 中可用”。我的问题是我应该为当前的 iOS5 做另一种方式吗?我需要异步传输,并且需要通过 NSURLCredential 进行 UID/PWD 身份验证。

编辑:

所以如果我在我的标头中采用协议<NSURLConnectionDelegate> 并使用上面的委托方法,我这样做是正确的吗?

【问题讨论】:

iOS5 NSURLConnection methods deprecated 的可能重复项 【参考方案1】:

对于 iOS 5,您似乎可以利用新的 NSURLConnectionDelegate protocol(为您链接的文档)。

And here's a related (or maybe even duplicate?) question that explains even better.

【讨论】:

是的,它们还在,只是被转移到正式协议中。 嗯,实际上,由于某种原因,协议的文档中缺少所有这些方法;但是,它们仍然存在(并且未弃用)!在网上搜索表明这是一个文档错误。 不客气,模糊的。将<NSURLConnectionDelegate> 添加到您的标头应该适用于正式和非正式的协议使用,但我想知道编译器是否会抛出任何“警告”投诉。希望不会。

以上是关于已弃用的 NSURLConnection 方法,有替代方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何在 Android 中使用/不使用已弃用的方法

更新 Swift 中已弃用的 Firebase 函数

将 pybind11 绑定标记为已弃用的最佳方法

替换 Java Awt 已弃用的方法

图像中已弃用的 Notification 类的替代方法是啥?

如何正确更新已弃用的 Android BillingFlowParams 方法