0

我想知道这两个 NSURLConnection 协议或方法(或它们实际称为什么)的区别。

我对 Objective-C 编程非常陌生,我正在尝试创建一个从网站加载数据的 iOS 应用程序。我注意到在我观看/阅读的教程中,当他们使用 connectionWithRequest 时,他们有其他方法在我看来是 connectionWithRequest 正常工作所需的方法。一个教程是这个。这些方法是:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;

仅举两个。关于这一点,我还有一个问题:当调用或使用 NSURLConnection connectionWithRequest:delegate 时,是否会自动调用这些方法?

我提到的两个 NSURLConnection 协议之间到底有什么区别?哪个更好用?

4

2 回答 2

1

我为您找到了一个很好的链接来了解 NSURLConnection 及其委托方法。

http://codewithchris.com/tutorial-how-to-use-ios-nsurlconnection-by-example/

于 2013-10-29T19:04:42.127 回答
1

主要区别在于不同类型的回调:

  • 方法-connectionWithRequest:delegate:使用委托,您必须实现didReceiveResponse,didReceiveData和其他才能使其有用。这更复杂,但允许您处理安全身份验证、进度跟踪和类似的事情。

  • 方法+sendAsynchronousRequest:queue:completionHandler:使用块完成,与委托相比要容易得多。它处理接收响应和附加正文数据,并简单地为您提供结果。

脚注: iOS 7 引入了全新的 URL 加载机制NSURLSessions,可以使用该机制代替NSURLConnection.

于 2013-10-29T19:19:07.807 回答