Обновление UILabel через таймер не работает - PullRequest
1 голос
/ 18 января 2012

Я пытаюсь обновить UILabel, который ведет обратный отсчет от даты рождения пользователя до более поздней даты.Я пытаюсь обновить лейбл, чтобы они могли видеть его обратный отсчет, но не могу заставить его работать.Совет ценится!

Вот где я делаю таймер:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeFormatted:) userInfo:nil repeats:NO];
}

и вот где я получаю фактическую информацию обратного отсчета ...

- (NSString *)timeFormatted:(int)totalSeconds
{       
    NSTimeInterval theTimeInterval = [self numberOfSecondsToLive];

    NSCalendar *sysCalendar = [NSCalendar currentCalendar];

    NSDate *date1 = [[NSDate alloc] init];
    NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1]; 

    unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit | NSSecondCalendarUnit;

    NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:date1  toDate:date2  options:0];

  _numberofSeconds.text = [NSString stringWithFormat:@" %dyears:%dMonths:%ddays:%dhour:%dminutes:%dseconds",[conversionInfo year],[conversionInfo month], [conversionInfo day], [conversionInfo hour], [conversionInfo minute], [conversionInfo second]];

    [date1 release];
    [date2 release];
 } 

Что происходит, когдадействительно показывает правильную информацию обратного отсчета, но не обновляет ее.

Заранее спасибо!

Ответы [ 2 ]

5 голосов
/ 18 января 2012

Вы запустили таймер с repeats:NO, вы хотите, чтобы это было repeats:YES для повторения таймера.

3 голосов
/ 18 января 2012

Возможно, вы хотите установить repeats на YES вместо NO в этой строке:

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeFormatted:) userInfo:nil repeats:NO];

В примечании стороны эта строка неверна:

- (NSString *)timeFormatted:(int)totalSeconds

должно быть:

- (void)timeFormatted:(NSTimer *)timer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...