2011-06-17 93 views
1

我只想知道爲什麼NSTimer在隱藏應用程序時會停止或在其他應用程序中「隱藏其他」? 我該如何補救?NSTimer停止應用程序被隱藏?

感謝

+0

我剛剛在我的應用程序中對此進行了測試,並且我無法重現您的問題 - 如預期的那樣,應用程序隱藏時定時器會持續觸發。你的應用有什麼特別之處嗎? – 2011-06-17 09:46:11

+0

你打電話給運行循環添加定時器的方法是什麼? – 2011-06-17 12:00:44

+0

它只是在NSButton – 2011-06-17 12:07:16

回答

0

也許你的計時器越來越垃圾回收或以其他方式由自動釋放池也許解脫出來,因​​此已經不火。

嘗試這樣做:

- (IBAction)recordCam1:(id)sender { 
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(recordFile1:) userInfo:Nil repeats:YES]; 
    [myTimer retain]; 
} 

其中myTimer在類的一個實例變量。看看是否會產生不同的行爲。如果是這樣,那麼你知道問題是與內存管理有關。

+1

計劃的計時器將由運行循環保留在手動保持/釋放區中;我不知道它是如何在GC或ARC下進行的。在GC下,「保留」信息什麼都不做;簡單地將指針存儲在一個實例變量(未標記爲「__weak」)是一個強大的參考,它將保持它的活力。 – 2011-06-18 05:57:02