YTKRequestEventAccessory.m 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //
  2. // YTKRequestEventAccessory.m
  3. // YTKNetwork
  4. //
  5. // Created by Chuanren Shang on 2020/8/17.
  6. //
  7. #import "YTKRequestEventAccessory.h"
  8. @implementation YTKRequestEventAccessory
  9. - (void)requestWillStart:(id)request {
  10. if (self.willStartBlock != nil) {
  11. self.willStartBlock(request);
  12. self.willStartBlock = nil;
  13. }
  14. }
  15. - (void)requestWillStop:(id)request {
  16. if (self.willStopBlock != nil) {
  17. self.willStopBlock(request);
  18. self.willStopBlock = nil;
  19. }
  20. }
  21. - (void)requestDidStop:(id)request {
  22. if (self.didStopBlock != nil) {
  23. self.didStopBlock(request);
  24. self.didStopBlock = nil;
  25. }
  26. }
  27. @end
  28. @implementation YTKBaseRequest (YTKRequestEventAccessory)
  29. - (void)startWithWillStart:(nullable YTKRequestCompletionBlock)willStart
  30. willStop:(nullable YTKRequestCompletionBlock)willStop
  31. success:(nullable YTKRequestCompletionBlock)success
  32. failure:(nullable YTKRequestCompletionBlock)failure
  33. didStop:(nullable YTKRequestCompletionBlock)didStop {
  34. YTKRequestEventAccessory *accessory = [YTKRequestEventAccessory new];
  35. accessory.willStartBlock = willStart;
  36. accessory.willStopBlock = willStop;
  37. accessory.didStopBlock = didStop;
  38. [self addAccessory:accessory];
  39. [self startWithCompletionBlockWithSuccess:success
  40. failure:failure];
  41. }
  42. @end
  43. @implementation YTKBatchRequest (YTKRequestEventAccessory)
  44. - (void)startWithWillStart:(nullable void (^)(YTKBatchRequest *batchRequest))willStart
  45. willStop:(nullable void (^)(YTKBatchRequest *batchRequest))willStop
  46. success:(nullable void (^)(YTKBatchRequest *batchRequest))success
  47. failure:(nullable void (^)(YTKBatchRequest *batchRequest))failure
  48. didStop:(nullable void (^)(YTKBatchRequest *batchRequest))didStop {
  49. YTKRequestEventAccessory *accessory = [YTKRequestEventAccessory new];
  50. accessory.willStartBlock = willStart;
  51. accessory.willStopBlock = willStop;
  52. accessory.didStopBlock = didStop;
  53. [self addAccessory:accessory];
  54. [self startWithCompletionBlockWithSuccess:success
  55. failure:failure];
  56. }
  57. @end