NSTimer 不会失效
NSTimer does not invalidate
我在使计时器失效时遇到了问题。
@property (nonatomic, strong) NSTimer *timer;
在我成功的块中,我正在主线程上分配和设置我的计时器:
dispatch_async(dispatch_get_main_queue(), ^{
self.timer = [NSTimer scheduledTimerWithTimeInterval:[Config refreshInterval].integerValue target:self selector:@selector(methodThatHasABlockCalledMentionedAbove) userInfo:nil repeats:NO];
});
在我的 textFieldDidBeginEditing
中,我这样使我的计时器无效:
dispatch_async(dispatch_get_main_queue(), ^{
[self.timer invalidate];
self.timer = nil;
});
我的方法仍然在计时器上执行。有什么收获?
也许您正在设置多个定时器对象而不首先使旧对象失效?!
释放已经安排好的定时器对象不会使定时器失效,所以:
在执行 self.timer = ....
之前,先调用 [self.timer invalidate];
我在使计时器失效时遇到了问题。
@property (nonatomic, strong) NSTimer *timer;
在我成功的块中,我正在主线程上分配和设置我的计时器:
dispatch_async(dispatch_get_main_queue(), ^{
self.timer = [NSTimer scheduledTimerWithTimeInterval:[Config refreshInterval].integerValue target:self selector:@selector(methodThatHasABlockCalledMentionedAbove) userInfo:nil repeats:NO];
});
在我的 textFieldDidBeginEditing
中,我这样使我的计时器无效:
dispatch_async(dispatch_get_main_queue(), ^{
[self.timer invalidate];
self.timer = nil;
});
我的方法仍然在计时器上执行。有什么收获?
也许您正在设置多个定时器对象而不首先使旧对象失效?!
释放已经安排好的定时器对象不会使定时器失效,所以:
在执行 self.timer = ....
之前,先调用 [self.timer invalidate];