From 06a150fe6c5e65344ca8c94bebe393cdac15fa84 Mon Sep 17 00:00:00 2001 From: galaxycoder Date: Tue, 28 Jun 2016 00:26:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20block=20=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=87=AA=E5=8A=A8=E8=A1=A5=E5=85=A8=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pod/Classes/DRDBaseAPI.h | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/Pod/Classes/DRDBaseAPI.h b/Pod/Classes/DRDBaseAPI.h index 26c096f..8a6ffb3 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 /** From 7cdf199c99d8bd14425a05f32ff29d066a7d8538 Mon Sep 17 00:00:00 2001 From: galaxycoder Date: Tue, 28 Jun 2016 00:26:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E4=BE=BF=E6=8D=B7?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=BC=80=E5=90=AF=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pod/Classes/DRDBaseAPI.h | 7 +++++++ Pod/Classes/DRDBaseAPI.m | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/Pod/Classes/DRDBaseAPI.h b/Pod/Classes/DRDBaseAPI.h index 8a6ffb3..49de0c7 100644 --- a/Pod/Classes/DRDBaseAPI.h +++ b/Pod/Classes/DRDBaseAPI.h @@ -266,6 +266,13 @@ typedef void(^DRDAPICompletionHandler)(id _Nullable responseObject, NSError * _N */ - (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)]; }