Вызов метода NSTimer

Я плохо знаком с работой с таймерами на iPhone и нуждался бы в некоторой поддержке.

У меня есть метод, поскольку ниже этого занимает время и обновление a UILabel в моем userinterface. Я также имею NSTimer это называет тот метод однажды секунда (я только показываю часы и минуты). Это работает просто великолепно, за исключением первой секунды, Приложение является работающим (насколько я понимаю берет за одну секунду до timer называет метод).

Я хотел бы назвать свой метод от viewDidLoad, но как я могу предоставить правильные аргументы? Или есть ли лучший способ сделать это?

// Timer for updating time
[NSTimer scheduledTimerWithTimeInterval:1.0f 
                                 target:self 
                               selector:@selector(updateTime:) 
                               userInfo:nil 
                                repeats:YES];   


-(void)updateTime: (NSTimer *) timer {

    currentTime = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    // display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    NSString *currentTimeString = [dateFormatter stringFromDate:currentTime];
    [dateFormatter release];

    timeLabel.text =  currentTimeString;
}

Цените что-либо, что указало бы на меня в правильном направлении.

5
задан sunkehappy 23 December 2013 в 08:45
поделиться

2 ответа

В вашем методе вы не используете переменную таймера, верно? Итак, зачем просто вызывать [self updateTime: nil] . Это должно работать

2
ответ дан 15 December 2019 в 00:50
поделиться

Еще один вариант ... вы можете сделать:

[NSTimer scheduledTimerWithTimeInterval:0.01f 
                                 target:self 
                               selector:@selector(updateTime:) 
                               userInfo:nil  
                                repeats:NO];    

[NSTimer scheduledTimerWithTimeInterval:1.0f 
                                 target:self 
                               selector:@selector(updateTime:) 
                               userInfo:nil 
                                repeats: YES];
2
ответ дан 15 December 2019 в 00:50
поделиться