AFNetworking 版本兼容方式处理

    void(^uploadBlock)(NSProgress * _Nonnull uploadProgress) = ^void(NSProgress * _Nonnull uploadProgress) {
        
    };
    
    void(^successBlock)(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) = ^void(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        @strongify(self);
        
    };
    
    void(^failureBlcok)(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) = ^void(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        @strongify(self);
        
    };
    
    SEL afn_postMethodSelector = NSSelectorFromString(@"POST:parameters:headers:progress:success:failure:");
    
    if ([manager respondsToSelector:afn_postMethodSelector]) {
        // 4.x
        ((void (*)(id, SEL, NSString *, id, NSDictionary <NSString *, NSString *> *, void(^)(NSProgress *uploadProgress), void(^)(NSURLSessionDataTask *task, id _Nullable responseObject), void(^)(NSURLSessionDataTask * _Nullable task, NSError *error)))objc_msgSend)(manager, afn_postMethodSelector, turnoverUrl, parameters, nil, uploadBlock, successBlock, failureBlcok);
    } else {
        // 3.x
        afn_postMethodSelector = NSSelectorFromString(@"POST:parameters:progress:success:failure:");
        
        ((void (*)(id, SEL, NSString *, id, void(^)(NSProgress *uploadProgress), void(^)(NSURLSessionDataTask *task, id _Nullable responseObject), void(^)(NSURLSessionDataTask * _Nullable task, NSError *error)))objc_msgSend)(manager, afn_postMethodSelector, turnoverUrl, parameters, uploadBlock, successBlock, failureBlcok);
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。