2015-02-24 113 views
-1

我正在啓動一個基於假條件觸發事件的計時器。但是如果條件在預定時間內變爲真,我需要停止觸發事件。停止已安排的nstimer

if(!condition) 
{ 
    myTimer =[NSTimer scheduledTimerWithTimeInterval:200 target:self selector:@selector(trigger:) userInfo:nil repeats:NO]; 
} 
else 
{ 
if([myTimer isvalid]) 
    [myTimer invalidate] 
    myTimer= nil; 
} 

如果條件變爲200秒內真不觸發@選擇。

使計時器無效並不會停止觸發方法。我可以通過使用BOOL標誌來做到這一點,但我可以使用NSTimer的方法來做到這一點。

+0

[myTimer無效] [myTimer無] – Hardik 2015-02-24 13:06:09

+0

嘗試無效它'myTimer =零之後設置定時器到零;' – Mellson 2015-02-24 13:06:46

+0

我想,也沒有用。檢查更新的代碼。 – vishnuvarthan 2015-02-24 13:12:19

回答

1

您必須創建myTimer的多個實例。檢查myTimer是否已經初始化?

if(!condition) 
{ 
    if(myTimer == nil) 
    myTimer =[NSTimer scheduledTimerWithTimeInterval:200 target:self selector:@selector(trigger:) userInfo:nil repeats:NO]; 
} 
else 
{ 
if([myTimer isvalid]) 
    { 
    [myTimer invalidate] 
     myTimer = nil; 
    } 
} 
+0

多個實例是謝謝你@bhumeshwer的問題 – vishnuvarthan 2015-02-24 13:53:15