Я плохо знаком с работой с таймерами на 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;
}
Цените что-либо, что указало бы на меня в правильном направлении.
В вашем методе вы не используете переменную таймера, верно? Итак, зачем просто вызывать [self updateTime: nil]
. Это должно работать
Еще один вариант ... вы можете сделать:
[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];