Jestem nowy w pracy z timerem na iPhone
i potrzebuję wsparcia.Wywołanie metody NSTimer
Mam metodę jak poniżej, która wymaga czasu i aktualizacji UILabel
w moim userinterface
. Mam też NSTimer
, który wywołuje tę metodę raz na sekundę (pokazuję tylko godziny i minuty). Działa to dobrze, z wyjątkiem pierwszej sekundy, w której aplikacja jest na żywo (jak rozumiem, zajmuje jedną sekundę, zanim metoda zadzwoni).
Chciałbym nazwać moją metodę od viewDidLoad
, ale jak mogę podać odpowiednie argumenty? Czy istnieje lepszy sposób na zrobienie tego?
// 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;
}
Doceń wszystko, co wskaże mi właściwy kierunek.
Tak masz rację. Takie proste i zadbane rozwiązanie. Testowane i działa dobrze. Dzięki! Wydaje się również być rozwiązaniem z "ogniem", które można uruchomić zdarzenie licznika czasu, ale nie miałem czasu, aby go przetestować jeszcze. – Structurer