12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- //
- // FKWeakTimerTarget.m
- // FirstLink
- //
- // Created by ascii on 15/12/3.
- // Copyright © 2015年 FirstLink. All rights reserved.
- //
- #import "FKWeakTimerTarget.h"
- @interface FKWeakTimerTarget ()
- @property (nonatomic, weak) id target;
- @property (nonatomic, assign) SEL selector;
- @property (nonatomic, weak) NSTimer* timer;
- @end
- @implementation FKWeakTimerTarget
- - (void) fire:(NSTimer *)timer {
- if(self.target && [self.target respondsToSelector:@selector(performSelector:withObject:)]) {
- [self.target performSelector:self.selector withObject:timer.userInfo];
- } else {
- [self.timer invalidate];
- }
- }
- + (NSTimer *) scheduledTimerWithTimeInterval:(NSTimeInterval)interval
- target:(id)aTarget
- selector:(SEL)aSelector
- userInfo:(id)userInfo
- repeats:(BOOL)repeats {
- FKWeakTimerTarget* timerTarget = [[FKWeakTimerTarget alloc] init];
- timerTarget.target = aTarget;
- timerTarget.selector = aSelector;
- timerTarget.timer = [NSTimer scheduledTimerWithTimeInterval:interval
- target:timerTarget
- selector:@selector(fire:)
- userInfo:userInfo
- repeats:repeats];
- return timerTarget.timer;
- }
- @end
|