为什么iphone SDK NSTimer没有调用我告诉它的功能?

时间:2010-09-05 01:48:51

标签: iphone xcode nstimer

我正在编写一个内置计时器功能的应用程序。不幸的是,我遇到了NSTimer的问题而且我不确定我做错了什么。这是我宣布计时器......

if(!myTimer)
{
    NSLog(@"Setting up the timer!");
    myTimer=[NSTimer timerWithTimeInterval:1 
                                    target:self
                                  selector:@selector(timerTicked)
                                  userInfo:nil 
                                   repeats:YES];
}

感谢NSLog函数,我知道设置定时器的代码正在关闭,但它没有调用函数:

-(void)timerTicked:(NSTimer*)theTimer
{
//NSLOG that tells me that this function isn't being fired
}

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:4)

您在选择器名称上缺少尾随冒号。应该是这样的

selector:@selector(timerTicked:)

- 在提问评论后添加

如果仍然无效,请检查以确保将计时器添加到运行循环

[[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode];

http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSTimer_Class/Reference/NSTimer.html#//apple_ref/doc/uid/20000319-CHDECCEE

请参阅文档的讨论部分,它讨论了如何将计时器添加到运行循环并指向运行循环文档。