Получите время, чтобы "бежать" в iOS - PullRequest
0 голосов
/ 19 апреля 2011

Я прочитал руководство о том, как сделать часы, в iOS. И это работает так, как должно, и все такое, но я хочу пойти дальше и заставить часы обновлять каждую минуту. Так что оно больше не является «статичным», поэтому, если вы открываете приложение в 12:16 и запускаете его, оно должно автоматически обновляться каждую минуту (12:17, 12:18 и т. Д.).

Это код, который мне предоставил гид,

NSDateFormatter *datoVar = [[NSDateFormatter alloc] init];
[datoVar setDateFormat:@"hh:mm"];

LabelKlokken.text = [datoVar stringFromDate:[NSDate date]];

Я пробовал и пытался просмотреть google и stackoverflow, но просто не могу ничего найти.

Заранее спасибо, Олуф Нильсен.

РЕДАКТИРОВАНИЕ : мой код теперь выглядит так

-(void)clock
{
    NSDateFormatter *datoVar = [[NSDateFormatter alloc] init];
    [datoVar setDateFormat:@"hh:mm"];

    LabelKlokken.text = [datoVar stringFromDate:[NSDate date]];
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self clock];
    tid = nil;
    tid = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(clock) userInfo:NULL repeats:YES];
}

1 Ответ

0 голосов
/ 19 апреля 2011

Вы можете запланировать NSTimer для проверки времени каждые 60 секунд.

dateTimer = [NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];

введите ваш код в методе updateTime. А еще лучше, проверяйте это каждую секунду, потому что может случиться так, что вы будете переключать время на 59-й секунде каждой минуты, отставая на 59 секунд ... Не забудьте отключить таймер, как только вы захотите выйти из обновления, чтобы ваше приложение не зависало при переключении представлений или чего-то еще.

[dateTimer invalidate]; dateTimer = nil;

...