Xcode 使用Apple推荐的NSURL委托方法

Xcode 使用Apple推荐的NSURL委托方法,xcode,nsurlconnection,Xcode,Nsurlconnection,使用以下代码 NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:self.urlNameInput.text] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; [NSURLConnection sendAsynchronousRequest:theRequest queue:[NSOperationQu

使用以下代码

NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:self.urlNameInput.text] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[NSURLConnection sendAsynchronousRequest:theRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *connection, NSData *data, NSError *error){...}];
我的原始代码不起作用,但如下所示。我的代码使用了Apple文档中建议的一组委托方法(connection:didReceiveResponse:、connection:didReceiveData:、connection:didFailWithError:和connectionDidFinishLoading:)

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlNameInput.text] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
         if (theConnection) {
         receivedData = [NSMutableData data] ;
         } else {
         // Inform the user that the connection failed.
         NSLog(@"Their is an error with that URL.");
         };

委托方法是否与建议的代码兼容?如果兼容,如何将其集成到建议的代码中?

您可以使用其中一种方法

问题中的第一段代码不使用任何委托方法。相反,您在完成处理程序中执行所有操作。要么得到数据,要么得到错误。您不需要处理附加数据或处理重定向

如果需要更多的控制,则必须使用较旧的表单以及适当的委托方法集


完成处理程序版本要简单得多,除非您需要代理版本的灵活性,否则应该使用它。

您可以使用其中一个

问题中的第一段代码不使用任何委托方法。相反,您在完成处理程序中执行所有操作。要么得到数据,要么得到错误。您不需要处理附加数据或处理重定向

如果需要更多的控制,则必须使用较旧的表单以及适当的委托方法集

完成处理程序版本要简单得多,除非您需要委托版本的灵活性,否则应该使用它