忽略警告是否安全:延迟存储在delayTimer中的值永远不会被读取?

时间:2010-09-16 10:21:43

标签: objective-c warnings nstimer

这是我的代码目前的样子

NSTimer *delayTimer;
delayTimer = [NSTimer scheduledTimerWithTimeInterval:0.01
                                              target:self
                                            selector:@selector(longRunner)
                                            userInfo:nil
                                             repeats:NO];

// [delayTimer invalidate];

如果我通过构建和分析运行此操作,我会收到以下警告

  

永远不会读取存储在delayTimer中的值。

我理解这条消息及其含义,但无法弄清楚如何阻止它出现。是否有一些分析器消息可以忽略?

我尝试添加注释的无效代码,但正如预期的那样,它在计时器之前运行,因此计时器没有。

2 个答案:

答案 0 :(得分:1)

我认为这是安全的,它只是警告你,你的价值没有被你的剧本所淹没。

像php一样警告你:

  

注意:未定义的变量:

除非在退出应用程序之前必须运行,否则你应该在代码中的某处使你的计时器无效。

答案 1 :(得分:0)

忽略警告永远不是一个好主意。在这种情况下,您有两种选择:

  1. 将计时器存储在属性中。这是更好的选择,因为它允许您在计时器触发之前销毁创建它的对象时销毁计时器。

  2. 不要创建局部变量。这是实际警告。由于您没有使用指针'delayTimer',因此不要指定它。

  3. 选项1是正确的答案。选项2将删除警告。