Обновление NSDateFormatter с помощью NSTimer - PullRequest
0 голосов
/ 12 января 2012

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

CustomClass.m

- (NSString *) showLocaleTime {

            NSDateFormatter *timeFormater = [[NSDateFormatter alloc] init];
timeFormater = [setDateFormat:@"HH:mm:ss "];

NSString *currDay = [timeFormater stringFromDate:[NSDate date]];
currDay = [NSString stringWithFormat:@"%@",currDay];
[timeFormater release];


    return timer;
}


- (void) updateLocaleTime {

    [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showLocaleTime) userInfo:nil repeats:YES];

}

viewController.m:

CustomClass *time = [[CustomClass alloc]init];
label.text = [time showLocaleTime];

[time updateLocaleTime];

Но проблема в том, что updateLocaleTime не вызывает обновления секунд! я что-то пропустил ? Спасибо

Ответы [ 2 ]

1 голос
/ 12 января 2012

Вместо вызова updateLocaleTime в CustomClass, просто запустите таймер в самом контроллере представления.

[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(updateLocaleTime) userInfo:nil repeats:YES];

Добавьте метод updateLocaleTime к viewController

- (void) updateLocaleTime {

   CustomClass *time = [[CustomClass alloc]init];
   label.text = [time showLocaleTime];
   [time release];
}

Но здесь мы выделяем и высвобождаем CustomClass снова и снова каждые 0,5 секунды.Вместо этого вы объявляете его как член класса в файле .h и выделяете его в viewDidLoad.

Так что нет необходимости выделять в методе updateLocaleTime.Также выпустите этот time в viewDidUnload методе.

0 голосов
/ 12 января 2012

Где вы обновляете текст метки после вычисления нового времени? (Тогда вы вычисляете новое время, но оно падает на пол.)

Например, добавьте label.text = timer; к вашему методу showLocalTime и пропустите возврат timer.

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