NSTimer停止应用程序被隐藏?

问题描述:

我只想知道为什么NSTimer在隐藏应用程序时会停止或在其他应用程序中“隐藏其他”? 我该如何补救?NSTimer停止应用程序被隐藏?

感谢

+0

我刚刚在我的应用程序中对此进行了测试,并且我无法重现您的问题 - 如预期的那样,应用程序隐藏时定时器会持续触发。你的应用有什么特别之处吗? – 2011-06-17 09:46:11

+0

你打电话给运行循环添加定时器的方法是什么? – 2011-06-17 12:00:44

+0

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

也许你的计时器越来越垃圾回收或以其他方式由自动释放池也许解脱出来,因​​此已经不火。

尝试这样做:

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