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.");
};
委托方法是否与建议的代码兼容?如果兼容,如何将其集成到建议的代码中?您可以使用其中一种方法 问题中的第一段代码不使用任何委托方法。相反,您在完成处理程序中执行所有操作。要么得到数据,要么得到错误。您不需要处理附加数据或处理重定向 如果需要更多的控制,则必须使用较旧的表单以及适当的委托方法集
完成处理程序版本要简单得多,除非您需要代理版本的灵活性,否则应该使用它。您可以使用其中一个 问题中的第一段代码不使用任何委托方法。相反,您在完成处理程序中执行所有操作。要么得到数据,要么得到错误。您不需要处理附加数据或处理重定向 如果需要更多的控制,则必须使用较旧的表单以及适当的委托方法集 完成处理程序版本要简单得多,除非您需要委托版本的灵活性,否则应该使用它