BUConditionTracker.h 975 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // BUConditionTracker.h
  3. // BUFoundation
  4. //
  5. // Created by Willie on 2021/4/20.
  6. //
  7. #import <Foundation/Foundation.h>
  8. NS_ASSUME_NONNULL_BEGIN
  9. typedef BOOL (^BUConditionBlock)(void);
  10. typedef void (^BUActionBlock)(void);
  11. /// 条件轮询器:每秒轮询指定的条件,若条件满足则执行指定的行为
  12. @interface BUConditionTracker : NSObject
  13. /// 通过指定的条件 block 和行为 block 来构建一个
  14. /// @param condition 每秒轮询的条件,需要返回一个 BOOL 值
  15. /// @param action 当轮询条件满足时,需要执行的行为
  16. /// @param retryCount 轮询次数,当实际轮询次数超过指定次数后轮询自动停止,并释放条件和行为 block
  17. - (instancetype)initWithConditon:(BUConditionBlock)condition
  18. action:(BUActionBlock)action
  19. retryCount:(NSInteger)retryCount;
  20. /// 开始轮询
  21. - (void)start;
  22. /// 停止轮询并释放资源
  23. - (void)stop;
  24. @end
  25. NS_ASSUME_NONNULL_END