No Description

FKWeakTimerTarget.m 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // FKWeakTimerTarget.m
  3. // FirstLink
  4. //
  5. // Created by ascii on 15/12/3.
  6. // Copyright © 2015年 FirstLink. All rights reserved.
  7. //
  8. #import "FKWeakTimerTarget.h"
  9. @interface FKWeakTimerTarget ()
  10. @property (nonatomic, weak) id target;
  11. @property (nonatomic, assign) SEL selector;
  12. @property (nonatomic, weak) NSTimer* timer;
  13. @end
  14. @implementation FKWeakTimerTarget
  15. - (void) fire:(NSTimer *)timer {
  16. if(self.target && [self.target respondsToSelector:@selector(performSelector:withObject:)]) {
  17. [self.target performSelector:self.selector withObject:timer.userInfo];
  18. } else {
  19. [self.timer invalidate];
  20. }
  21. }
  22. + (NSTimer *) scheduledTimerWithTimeInterval:(NSTimeInterval)interval
  23. target:(id)aTarget
  24. selector:(SEL)aSelector
  25. userInfo:(id)userInfo
  26. repeats:(BOOL)repeats {
  27. FKWeakTimerTarget* timerTarget = [[FKWeakTimerTarget alloc] init];
  28. timerTarget.target = aTarget;
  29. timerTarget.selector = aSelector;
  30. timerTarget.timer = [NSTimer scheduledTimerWithTimeInterval:interval
  31. target:timerTarget
  32. selector:@selector(fire:)
  33. userInfo:userInfo
  34. repeats:repeats];
  35. return timerTarget.timer;
  36. }
  37. @end