diff --git a/Pod/Classes/DRDBaseAPI.h b/Pod/Classes/DRDBaseAPI.h index 26c096f..49de0c7 100644 --- a/Pod/Classes/DRDBaseAPI.h +++ b/Pod/Classes/DRDBaseAPI.h @@ -15,6 +15,14 @@ NS_ASSUME_NONNULL_BEGIN +/** + * 请求完成回调 block 定义 + * + * @param responseObject api 返回的数据结构 + * @param error api 返回的错误信息 + */ +typedef void(^DRDAPICompletionHandler)(id _Nullable responseObject, NSError * _Nullable error); + #pragma mark - @protocol DRDMultipartFormData @@ -70,11 +78,9 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, nullable) void (^apiRequestConstructingBodyBlock)(id _Nonnull formData); /** - * api完成后的执行体 - * responseObject: api 返回的数据结构 - * error: api 返回的错误信息 + * api 完成后的回调 block */ -@property (nonatomic, copy, nullable) void (^apiCompletionHandler)(id _Nullable responseObject, NSError * _Nullable error); +@property (nonatomic, copy, nullable) DRDAPICompletionHandler apiCompletionHandler; /** * api 上传、下载等长时间执行的Progress进度 @@ -235,6 +241,14 @@ NS_ASSUME_NONNULL_BEGIN */ - (nonnull DRDSecurityPolicy *)apiSecurityPolicy; +/** + * ApiCompletionHandler + * 声明 setter 方法,方便 block 参数自动补全 + * + * @param apiCompletionHandler 请求完成回调 block + */ +- (void)setApiCompletionHandler:(DRDAPICompletionHandler _Nullable)apiCompletionHandler; + #pragma mark - Process /** @@ -252,6 +266,13 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)start; +/** + * 开启 API 请求,并配置请求完成回调 + * + * @param completionHandler 请求完成回调 block + */ +- (void)startWithCompletionHandler:(DRDAPICompletionHandler _Nullable)completionHandler; + /** * 取消API 请求 */ diff --git a/Pod/Classes/DRDBaseAPI.m b/Pod/Classes/DRDBaseAPI.m index 679b64d..abe5bb0 100644 --- a/Pod/Classes/DRDBaseAPI.m +++ b/Pod/Classes/DRDBaseAPI.m @@ -106,6 +106,11 @@ - (void)start { [[DRDAPIManager sharedDRDAPIManager] sendAPIRequest:((DRDBaseAPI *)self)]; } +- (void)startWithCompletionHandler:(DRDAPICompletionHandler)completionHandler { + self.apiCompletionHandler = completionHandler; + [self start]; +} + - (void)cancel { [[DRDAPIManager sharedDRDAPIManager] cancelAPIRequest:((DRDBaseAPI *)self)]; }