即使在iPad arc项目中取消,NSTimer也不会失效

时间:2013-11-21 07:42:00

标签: ios ipad uiviewcontroller nstimer

我正在激活计时器以调用webservice api以与details进行同步。在获取用户的详细信息后,我正在激活此timer.i调用activateSyncTimer,如果之前已激活的计时器,我将取消其中。也将在viewwilldisappear中调用clearSyncTimer。但是在控制台中我看到计时器没有失效。我正在使用ipad并且项目是弧形的

- (void)activateSyncTimer {
[self clearSyncTimer];

if (self.canTakeTest && [[NSUserDefaults standardUserDefaults] boolForKey:kIsLoggedIn]) {
    self.syncTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(syncTestWithServer) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:self.syncTimer forMode:NSDefaultRunLoopMode];
}
}

- (void)clearSyncTimer {
if (self.syncTimer != nil) {
    [self.syncTimer invalidate];
    self.syncTimer = nil;
}

 }

1 个答案:

答案 0 :(得分:0)

尝试删除此行 [[NSRunLoop mainRunLoop] addTimer:self.syncTimer forMode:NSDefaultRunLoopMode];

如果调用方法scheduledTimerWithTimeInterval: target: selector: userInfo: repeats:

,则无需手动将计时器添加到runloop