Безопасно ли игнорировать предупреждение: значение, сохраненное в delayTimer, никогда не читается? - PullRequest
1 голос
/ 16 сентября 2010

Вот как мой код выглядит в настоящее время

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

// [delayTimer invalidate];

Если я запускаю это через сборку и анализ, я получаю следующее предупреждение

Значение, сохраненное в delayTimer, никогда не читается.

Я понимаю сообщение и что оно означает, но не могу понять, как его остановить.Есть ли какие-то сообщения анализатора, которые можно игнорировать?

Я пытался добавить закомментированный недействительный код, но, как и ожидалось, он выполнялся раньше таймера, поэтому таймер не работал.

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

Я думаю, что это безопасно, это только предупреждает вас, что ваше значение не было прочитано в вашем скрипте.

Как php предупреждает вас:

Примечание: неопределенная переменная:

Тем не менее, вам, вероятно, следует сделать недействительным свой таймер где-то в коде, если только он не будет работать, пока вы не закроете приложение.

0 голосов
/ 08 июня 2011

Никогда не стоит игнорировать предупреждения. В этом случае у вас есть два варианта:

  1. Хранить таймер в собственности. Это лучший вариант, поскольку он позволяет уничтожить таймер, если объект, который его создал, уничтожен до того, как таймер сработает.

  2. Не создавать локальную переменную. Это фактическое предупреждение. Поскольку вы не используете указатель 'delayTimer', просто не присваивайте его.

Вариант 1 - правильный ответ. Вариант 2 удалит предупреждение.

...