2013-11-21 48 views
0

我正在激活計時器以調用webservice api以與details.ync提取用戶的詳細信息後,我激活此timer.i調用activateSyncTimer本身我取消if以前在viewwilldisappear激活timer.Also我打電話clearSyncTimer。但在控制檯中我看到計時器不invalidated.I現在用ipad和該項目是圓弧田間NSTimer即使在iPad arc項目中取消也不會失效

- (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

即使我沒有添加到運行循環,這是正在觸發的 – jbat100

回答

0

嘗試刪除這條線 [[NSRunLoop mainRunLoop] addTimer:self.syncTimer forMode:NSDefaultRunLoopMode];

如果您調用方法01,則不必將計時器手動添加到runloop

+0

如何返回Web服務中的數據?它是在一個塊還是一個委託方法?嘗試調用dispatch_async(dispatch_get_main_queue(),^([weakThis activateSyncTimer];)) – Nassif

+0

您是否需要將計劃的計時器添加到運行循環 –

+0

我也試着從視圖調用nstimer做負載來檢查它是否停止。但沒有機會。 – Nassif

相關問題