• AFNetworking 2.0 出现Use of undeclared identifier AFURLSessionManager错误


    当向下面使用时会出现错误

    #import "AFNetworking.h"
    #import "AFURLSessionManager.h"
    
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

    主要原因是NSURLSession模块仅支持ios7,打开AFURLSessionManager.h会看到一个宏

    #if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090)

    AFURLSessionManager只支持ios7和macosx10.9.0故创建下载任务时

    -(void)download:(NSString *)url complete:(void(^)(id result,NSError *error))success{
    #if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090)
        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
        
        AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
        
        NSURL *URL = [NSURL URLWithString:url];
        NSURLRequest *request = [NSURLRequest requestWithURL:URL];
        
        NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
            NSURL *documentsDirectoryPath = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]];
            return [documentsDirectoryPath URLByAppendingPathComponent:[targetPath lastPathComponent]];
        } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
            NSLog(@"File downloaded to: %@", filePath);
            if (error) {
                success(nil,error);
            }else{
                success(filePath,nil);
            }
        }];
        [downloadTask resume];
    #else
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:[url lastPathComponent]];
        operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
        [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"Successfully downloaded file to %@", path);
             success(path,nil);
        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Error: %@", error);
            success(nil,error);
        }];
        [operation start];
    #endif
    }
  • 相关阅读:
    jquery实现checkbox列表的全选不选
    SQL server 无法更新标识列
    如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?
    混合式App开发 Apicloud 官方iPhone X 适配
    C# 加密解密以及sha256不可逆加密案例
    C#排队处理DEMO
    vs中如何统计整个项目的代码行数
    ApiCloud利用NVTabBar模块快速搭建起APP的框架
    走进异步编程的世界--async/await项目使用实战
    H5开发APP考题和答案
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3465092.html
Copyright © 2020-2023  润新知