美文网首页
(IOS)block做方法的参数用例

(IOS)block做方法的参数用例

作者: rightmost | 来源:发表于2019-01-04 10:08 被阅读0次

    用例:网络请求类封装

    在数据请求下来之后使用block回调,将请求下来的网络数据返回给某个页面使用。

    .h文件

    #import <Foundation/Foundation.h>

    //typedef void(^success)(id);

    @interface NetUtil : NSObject

    /** 通过session获取 POST网络请求 */

    + (void) POST:(NSURL *) url SuccessState:(void(^)(id responseData))success FailureState:(void(^)(id error))failure;

    @end

    .m文件

    #import "NetUtil.h"

    @implementation NetUtil

    #pragma mark - 通过NSURLSession进行POST请求

    + (void) POST:(NSURL *) url SuccessState:(void(^)(id responseData))success FailureState:(void(^)(id error))failure{

        NSMutableURLRequest * request = [[NSMutableURLRequest alloc] initWithURL:url];

        request.HTTPMethod = @"POST";

        request.timeoutInterval = 6;

        NSURLSessionDataTask * dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

            if (error != nil || data == nil || response == nil) {

                // 请求失败

                failure(error);

            }else{

                // 请求成功

                success(data);

            }

        }];

        [dataTask resume];

    }

    @end

    block做方法的参数用例:内部封装方法的实现,外部调用返回结果。

    相关文章

      网友评论

          本文标题:(IOS)block做方法的参数用例

          本文链接:https://www.haomeiwen.com/subject/vcfhrqtx.html