我正在开发一个需要逐秒更新的 iOS 应用程序(FW:5.0+ 和 ARC)。
目前,我在一个方法中有这个(当 -ViewDidLoad 时在 performSelector 中调用它):
-(void)FireOnload {
counter = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(countDownTime) userInfo:nil repeats:YES];
[counter fire];
[[NSRunLoop mainRunLoop] addTimer:counter forMode: NSDefaultRunLoopMode]; // <-- Causing Problem
}
-(void)countDownTime
{
double timeNow = [[NSDate date] timeIntervalSince1970];
double timeLeft = timeEnding - timeNow;
if(timeLeft < 60) // Less then 60 seconds, do something.
{
//Do Stuff
}
}
该counter
变量在标头中称为 NSTimer。我明确调用[counter fire]
,所以视图一加载就调用它,而不是 1 秒后调用。
这在 iOS 模拟器中运行良好,并且每秒都会触发一次,但是当它进入 iDevice 时,它会崩溃。
我已经注释掉了这NSRunLoop
条线,并且 iDevice 没有崩溃。但是,它不再每秒更新一次。
我在这里做错了什么?