Estoy empezando a desarrollar para el iPhone y, como tal, estoy buscando diferentes tutoriales en línea, así como probando algunas cosas por mi cuenta. Actualmente, intento crear una cuenta atrás hasta la medianoche. Para obtener el número de horas, minutos y segundos, hago lo siguiente (que he encontrado en alguna parte):Cómo obtengo la fecha actual en 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];
Sin embargo, cada lugar que utilizo -dateWithCalendarFormat:timeZone:
me sale el siguiente error:
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')
Esto parece algo muy simple. ¿Qué me estoy perdiendo?
Además, he notado en diferentes lugares y en diferentes momentos que el asterisco (*) se encuentra justo después del tiempo NSDate* now
o justo antes de la variable NSDate *now
. ¿Cuál es la diferencia en los dos y por qué usarías uno frente al otro?
¿Por qué tienes que utilizar este NSCalendar es una reciente ¿cambio? Hay muchos códigos que usan NSDate para estas cosas. – Jason
Sí, muchos métodos ahora están en desuso. –
Jason: NSDate todavía está allí. Está utilizando NSCalendarDate (eso es lo que -dateWithCalendarFormat: timeZone: returns), que está programado para desactivarse y no existe en el iPhone. –