Ios autostart应用程序后的Objective-C NSTimer

Ios autostart应用程序后的Objective-C NSTimer,ios,iphone,objective-c,nstimer,autostart,Ios,Iphone,Objective C,Nstimer,Autostart,我在iOS应用程序中添加了autostart(在所需的后台模式下添加VoIP),效果很好。然后我想添加NSTimer。我在-(id)init中写了以下内容 当我的应用程序自动启动时,我会收到一条消息“!!!!现在开始!!!!”并且没有人 如果有人知道问题所在,请帮助 首先,也许你想在那些日志消息中检查你的英语 其次,按照惯例,选择器和变量都应该使用小写(camelCase)名称(“myTimer”而不是“myTimer”) 第三,BOOL返回类型实际上没有意义。方法名startTimer。也许像

我在iOS应用程序中添加了autostart(在所需的后台模式下添加VoIP),效果很好。然后我想添加NSTimer。我在-(id)init中写了以下内容

当我的应用程序自动启动时,我会收到一条消息“!!!!现在开始!!!!”并且没有人


如果有人知道问题所在,请帮助

首先,也许你想在那些日志消息中检查你的英语

其次,按照惯例,选择器和变量都应该使用小写(camelCase)名称(“myTimer”而不是“myTimer”)

第三,
BOOL
返回类型实际上没有意义。方法名
startTimer
。也许像
timerFired
这样的东西更合适


最后,您必须确保您的应用程序仍在运行,否则计时器将无法调用该方法。此外,还必须确保计时器未解除分配,因此确保包含它的类在内存中。你也许还应该对计时器保持一个强有力的参考

也许您必须添加参数来接收计时器,并在startTimer的末尾添加:号

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


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

计时器是否仅在应用程序位于前台时执行?计时器必须在应用程序处于启动状态时执行>,此外,您必须确保计时器未解除分配,因此确保包含计时器的类位于内存中,以及我如何执行它?。。。。“强引用”是什么意思?谢谢例如,您的应用程序委托可以将
NSTimer
对象作为变量。然后,您可以确保它始终在内存中(直到您显式地销毁它)。即使您不保留引用,也不会释放定时计时器。同样的情况也适用于他们的目标对象。不过,如果必要的话,保留计时器引用使其失效是很有用的。我无法使它与释放的实例一起工作。
MyTimer = [NSTimer scheduledTimerWithTimeInterval:60 target:self
                                                 selector:@selector(StartMyTimer:) userInfo:nil     repeats:YES];


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