我试图用 替换NSURLConnection
,NSURLSession
但我发现NSURLSession
我无法像NSURLConnection
使用委托方法那样读取中间数据块。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
我曾经在完成之前开始使用数据。我有点流媒体。如何在NSURLSession
完成之前访问下载的数据?
我注意到在完成之前有一个(NSURL *)location
临时保存的数据位置NSURLSession
,但是我可以在完成之前获得这个 URL 吗?
谢谢
按照 Rob 的建议尝试了这个:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionTask *task = [session dataTaskWithRequest:request];
[task resume];
但是,只调用了 didRecieveResponse
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
但没有调用 didReceiveData。
我试图将任务更改为 downloadTask
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate:self delegateQueue: [NSOperationQueue mainQueue]];
NSURLSessionDownloadTask * downloadTask =[defaultSession downloadTaskWithRequest:request];
[downloadTask resume];
它适用于下载委托,但未调用数据委托 (didReceiveData)。
谁能告诉我我做错了什么?