我正在编写一个内置计时器功能的应用程序。不幸的是,我遇到了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
}
任何人都知道我做错了什么?
答案 0 :(得分:4)
您在选择器名称上缺少尾随冒号。应该是这样的
selector:@selector(timerTicked:)
- 在提问评论后添加
如果仍然无效,请检查以确保将计时器添加到运行循环
[[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSDefaultRunLoopMode];
请参阅文档的讨论部分,它讨论了如何将计时器添加到运行循环并指向运行循环文档。