我最近更新到 AFNetworking 2.0。文档说兼容iOS6.0+。当我尝试实现下载方法(图像和视频)时,我正在构建一个 iOS 6.0 应用程序。示例使用
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
但是,我收到“使用未声明的标识符‘AFURLSessionManager’”错误。我发现 AFURLSessionManager 使用一个仅在 iOS7 中可用的类。我只是想知道,我可以使用 AFNetworking 在 iOS6 中下载谁?
另外,有什么办法可以查看下载进度吗?
谢谢
您可以使用AFHTTPRequestOperation
类在 iOS 6 上执行文件下载。您基本上只需要设置操作的outputStream
属性来存储文件和downloadProgressBlock
属性来监控进度。
下面的基本方法是在一个类中声明的,该类是AFHTTPRequestOperationManager
。当我初始化这个类的实例时,我设置了baseURL
财产。
- (AFHTTPRequestOperation *)downloadFileWithContentId:(NSString *)contentId destination:(NSString*)destinationPath {
NSString *relativeURLString = [NSString stringWithFormat:@"api/library/zipped/%@.zip", contentId];
NSString *absoluteURLString = [[NSURL URLWithString:relativeURLString relativeToURL:self.baseURL] absoluteString];
NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"GET" URLString:absoluteURLString parameters:nil];
void (^successBlock)(AFHTTPRequestOperation *operation, id responseObject) = ^void(AFHTTPRequestOperation *operation, id responseObject) {
};
void (^failureBlock)(AFHTTPRequestOperation *operation, NSError *error) = ^void(AFHTTPRequestOperation *operation, NSError *error) {
};
AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:successBlock failure:failureBlock];
NSOutputStream *outputStream = [NSOutputStream outputStreamToFileAtPath:destinationPath append:NO];
operation.outputStream = outputStream;
[operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
}];
[self.operationQueue addOperation:operation];
return operation;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)