我有以下代码使用NSURLSession启动下载,但没有调用任何委托方法:
- (void)viewDidLoad
{
[super viewDidLoad];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
NSURLSessionDataTask *dataTask1 = [session dataTaskWithURL:[NSURL URLWithString:@"http://i.imgur.com/RARAP1J.jpg"]];
NSURLSessionDataTask *dataTask2 = [session dataTaskWithURL:[NSURL URLWithString:@"http://i.imgur.com/JR9ZihS.jpg"]];
NSURLSessionDataTask *dataTask3 = [session dataTaskWithURL:[NSURL URLWithString:@"http://i.imgur.com/f4w08VP.jpg"]];
NSURLSessionDataTask *dataTask4 = [session dataTaskWithURL:[NSURL URLWithString:@"http://i.imgur.com/MzWvRKa.jpg"]];
[dataTask1 resume];
[dataTask2 resume];
[dataTask3 resume];
[dataTask4 resume];
}
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
NSLog(@"yep");
}
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error {
NSLog(@"YEAH");
}
我不知道为什么会这样。我究竟做错了什么?
答案 0 :(得分:0)
我是你没有为会议设置代表 尝试使用
初始化会话NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:nil];
答案 1 :(得分:0)
你在说:
[NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]
您没有指定委托,那么您将如何获得任何回调?你不能。您必须通过调用dataTaskWithURL:completionHandler:
来创建数据任务,以便添加完成处理程序。
当然,如果您调用sessionWithConfiguration:delegate:delegateQueue:
会更好,因为那时您可以将自己设置为委托。但是你并没有那么明显地调用那些委托方法。