Таймер работает нормально на iOS 4.2, но не работает на iOS 5 - PullRequest
1 голос
/ 25 ноября 2011

В моем приложении

У меня есть вкладка 3,

На первой вкладке у меня есть таймер, который запускается при нажатии кнопки Пуск.

Когда мыперейдите из другой вкладки, таймер не получает обновления.

Для обновления таймера я использую следующий код:

myticker = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(ShowActicity) userInfo:nil repeats:YES];


 -(void)ShowActicity
 {
     Here I have the ticks,minute,hour  values   


      ticks =ticks + 1;
        if(ticks > 59)
        {
            minute = minute + 1;
            ticks = 0;
            if(minute > 59)
            {
                hour = hour + 1;
                minute = 0;
                if(hour > 23)
                {
                    hour = 0;
                }
            }
        }


        [lbl_timer setText:[NSString stringWithFormat:@"%02d:%02d:%02d",hour,minute,ticks]];


 }

Мой таймер обновляется нормально с Base SDK iOS 4.2, но не работаетна iOS 5. Что может быть не так?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2011

В проекте 4.3 main.m заменить на файл ios5 main.m.В appdelegate измените

   @interface SimpleTimerAppAppDelegate : NSObject 

на

  @interface SimpleTimerAppAppDelegate : UIResponder
0 голосов
/ 25 ноября 2011

Это может быть не вашей проблемой, но селектор неверен, из документов Apple:

Селектор должен иметь следующую подпись:

- (void)timerFireMethod:(NSTimer*)theTimer

так что ваш вызов NSTimer должен быть (обратите внимание на трейлинг ":"

myticker = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(ShowActicity:) userInfo:nil repeats:YES];

и целевой метод имеют подпись:

- (void)ShowActicity:(NSTimer*)theTimer

Обратите внимание, что в Objective-C принято называть методы с начальной строчной буквой, а классы с начальным верхним регистром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...