NSTimer不会失效

时间:2015-10-14 14:37:46

标签: ios timer objective-c-blocks dispatch-async

我的计时器无效。

@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;
 });

我的方法仍在定时器上执行。什么是捕获?

1 个答案:

答案 0 :(得分:3)

也许您正在设置多个计时器对象而不会先使旧计算机对象失效?!

释放已安排的计时器对象不会使计时器无效,因此:

self.timer = ....之前,请致电[self.timer invalidate];