Выпуск NSTimer iPhone? - PullRequest
       14

Выпуск NSTimer iPhone?

1 голос
/ 17 декабря 2011

У меня есть NSTimer, объявленный в моем .h, и в viewDidLoad / m у меня есть код:

timer = [NSTimer scheduledTimerWithTimeInterval:kComplexTimer target:self selector:@selector (main) userInfo:nil repeats:YES];

У меня также есть [таймер освобождения]; в моей сделке.

Однако, когда я выхожу из вида и возвращаюсь к нему, таймер фактически не освобождается, он удваивается по скорости! Как мне это решить и что я делаю не так ???

Спасибо

Ответы [ 4 ]

6 голосов
/ 17 декабря 2011

вам не нужно выпускать его, поскольку вы его не сохранили - как правило.все, что вам нужно сделать, это просто позвонить [timer invalidate];, что остановит ваш таймер.

3 голосов
/ 14 апреля 2012

Хороший ответ, но хорошо бы проверить, равно ли время нулю или нет, чтобы избежать нежелательных исключений ..

if( timer ! = nil )
{
  [timer invalidate];
  timer = nil;
}

Спасибо ...

2 голосов
/ 17 декабря 2011
[timer invalidate];
timer = nil;

Вторая строка важна, если вы хотите сбросить NSTimer

1 голос
/ 17 декабря 2011

Вы не должны вызывать release для объекта, который не был создан с помощью «new», «alloc», «retain», «copy».

В этом случае вы создали Timer с помощью метода scheduleTimerWithTimeInterval, поэтому вы не должны вызывать метод release, а вызываете [timer invalidate] для остановки таймера.

...