我想知道两个NSURLConnection协议或方法(或者实际上被称为它们)的区别。
我对Objective-C编程非常陌生,我正在尝试创建一个从网站加载数据的iOS应用。我注意到在我看过/读过的教程中,当他们使用connectionWithRequest时,他们有其他方法在我看来是connectionWithRequest正常工作所需的方法。一个教程是this。这些方法是:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response;
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
仅举两个例子。关于这一点,我还有另外一个问题:当调用或使用NSURLConnection connectionWithRequest:delegate时,是否会自动调用这些方法?
我提到的两个NSURLConnection协议之间究竟有什么区别?哪个更好用?
答案 0 :(得分:1)
我找到了一个很好的链接,让您了解NSURLConnection及其委托方法。
http://codewithchris.com/tutorial-how-to-use-ios-nsurlconnection-by-example/
答案 1 :(得分:1)
主要区别在于不同类型的回调:
方法-connectionWithRequest:delegate:
使用委派,您必须实施didReceiveResponse
,didReceiveData
和其他方法才能使其有用。这是更复杂,但允许您处理安全身份验证,进度跟踪和类似的事情。
方法+sendAsynchronousRequest:queue:completionHandler:
使用块完成功能,与委派相比,更容易。它处理接收响应和附加正文数据,并简单地为您提供结果。
脚注: iOS 7引入了全新的NSURLSessions
网址加载机制,可以代替NSURLConnection
使用。