NSTimer不会失效

我有一个问题,使我的计时器无效。

@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];