Zaczynam się rozwijać dla iPhone'a i jako takie patrzę na różne tutoriale online, jak również próbuję różnych rzeczy samemu. Obecnie próbuję odliczać do północy. Aby uzyskać liczbę godzinę, minuty i sekundy, mam następujące (który znalazłem gdzieś):Jak uzyskać aktualną datę w Cocoa
NSDate* now = [NSDate date];
int hour = 23 - [[now dateWithCalendarFormat:nil timeZone:nil] hourOfDay];
int min = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] minuteOfHour];
int sec = 59 - [[now dateWithCalendarFormat:nil timeZone:nil] secondOfMinute];
countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hour, min,sec];
Jednak każde miejsce używam -dateWithCalendarFormat:timeZone:
pojawia się następujący błąd:
warning: 'NSDate' may not respond to '-dateWithCalendarFormat:timeZone:'
(Messages without a matching method signature will be assumed to return 'id' and accept '...' as arguments.)
warning: no '-hourOfDay' method found
error: invalid operands to binary - (have 'int' and 'id')
Wydaje się to być bardzo proste. czego mi brakuje?
Ponadto zauważyłem w różnych miejscach iw różnych momentach gwiazdka (*) znajduje się zaraz po czasie NSDate* now
lub tuż przed zmienną NSDate *now
. Jaka jest różnica między tymi dwoma elementami i dlaczego używałbyś jednego w porównaniu do drugiego?
Dlaczego trzeba używać NSCalendar jest to ostatnie zmiana? Istnieje wiele kodu, który używa NSDate do tych rzeczy. – Jason
Tak, wiele metod jest obecnie przestarzałych. –
Jason: NSDate nadal tam jest. Używasz NSCalendarDate (to właśnie -dateWithCalendarFormat: timeZone: zwraca), który jest przeznaczony do wycofywania i nie istnieje na iPhone'ie. –