自动启动应用后的Objective-C NSTimer

时间:2013-12-04 20:57:48

标签: ios iphone objective-c nstimer autostart

我在我的iOS应用程序中添加了自动启动功能(在所需的后台模式中添加VoIP)并且运行正常。然后我想添加NSTimer。我在 - (id)init

中写了以下内容
NSLog(@"!!!!IT'S START!!!!");

    MyTimer = [NSTimer scheduledTimerWithTimeInterval:60 target:self
                                                     selector:@selector(StartMyTimer) userInfo:nil repeats:YES];


- (BOOL) StartMyTimer
{
NSLog(@"Timer is wirk");
}

当我的应用程序自动启动时,我收到一条消息“!!!! IT'S START !!!!”没有人......

如果有人知道问题是什么,那么请帮忙!

2 个答案:

答案 0 :(得分:0)

首先,也许您想在这些日志消息中检查您的英语。

其次,根据惯例,你应该为选择器和变量使用小写(camelCase)名称(" myTimer"而不是" MyTimer")。

第三,BOOL返回类型没有意义。方法名称startMyTimer也不是。也许类似于timerFired或者更合适。

最后,您必须确保您的应用仍在运行,否则计时器将无法调用该方法。此外,您必须确保未释放计时器,因此请确保包含它的类在内存中。您也许应该对计时器保持强烈的参考。

答案 1 :(得分:0)

也许您必须添加参数以接收计时器并在StartMyTimer结束时添加:

MyTimer = [NSTimer scheduledTimerWithTimeInterval:60 target:self
                                                 selector:@selector(StartMyTimer:) userInfo:nil     repeats:YES];


- (BOOL) StartMyTimer:(NSTimer *)myTimer {
    NSLog(@"Timer is wirk");
 }