每1/16秒,我有一个NSTimer,每次都会调用一个方法。我想创建一个静态整数,每次调用该方法时都会增加'1',一旦静态整数等于'16',我希望调用另一个方法并将静态整数重置为'0'。
非常感谢任何见解。 (语言是Obj-C)
答案 0 :(得分:6)
因此将其声明为静态int ...
static int myCounter;
@implementation SomeClass
- (id) init {
if (self = [super init]) {
myCounter = 0;
NSTimer * someTimer = [NSTimer scheduledTimerWithTimeInterval:(1/16) target:self selector:@selector(fireTimer:) userInfo:nil repeats:YES];
}
return self;
}
- (void) fireTimer:(NSTimer *)aTimer {
myCounter++;
if (myCounter == 16) {
[self doSomeMethod];
myCounter = 0;
}
}
@end