add files apis
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// NSTimer+Convenience.m
|
||||
// ISCTest
|
||||
//
|
||||
// Created by imac on 16/3/23.
|
||||
// Copyright © 2016年 xiang. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NSTimer+Convenience.h"
|
||||
|
||||
@implementation NSTimer (Convenience)
|
||||
|
||||
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval
|
||||
repeats:(BOOL)repeats
|
||||
callback:(LXVoidBlock)callback {
|
||||
return [NSTimer scheduledTimerWithTimeInterval:interval
|
||||
target:self
|
||||
selector:@selector(onTimerUpdateBlock:)
|
||||
userInfo:[callback copy]
|
||||
repeats:repeats];
|
||||
}
|
||||
|
||||
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval
|
||||
count:(NSInteger)count
|
||||
callback:(LXVoidBlock)callback {
|
||||
NSDictionary *userInfo = @{@"callback" : [callback copy],
|
||||
@"count" : @(count)};
|
||||
return [NSTimer scheduledTimerWithTimeInterval:interval
|
||||
target:self
|
||||
selector:@selector(onTimerUpdateCountBlock:)
|
||||
userInfo:userInfo
|
||||
repeats:YES];
|
||||
}
|
||||
|
||||
+ (void)onTimerUpdateBlock:(NSTimer *)timer {
|
||||
LXVoidBlock block = timer.userInfo;
|
||||
|
||||
if (block) {
|
||||
block();
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)onTimerUpdateCountBlock:(NSTimer *)timer {
|
||||
static NSUInteger currentCount = 0;
|
||||
|
||||
NSDictionary *userInfo = timer.userInfo;
|
||||
LXVoidBlock callback = userInfo[@"callback"];
|
||||
NSNumber *count = userInfo[@"count"];
|
||||
|
||||
if (count.integerValue <= 0) {
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
if (currentCount < count.integerValue) {
|
||||
currentCount++;
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
currentCount = 0;
|
||||
|
||||
[timer unfireTimer];
|
||||
[timer invalidate];
|
||||
timer = nil;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)fireTimer {
|
||||
[self setFireDate:[NSDate distantPast]];
|
||||
}
|
||||
|
||||
- (void)unfireTimer {
|
||||
[self setFireDate:[NSDate distantFuture]];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user