Je commence à développer pour l'iPhone et en tant que tel, je regarde différents tutoriels en ligne ainsi que d'essayer des choses différentes sur moi-même. Actuellement, j'essaye de créer un compte à rebours jusqu'à minuit. Pour obtenir le nombre d'heures, minutes et secondes, je fais ce qui suit (que je trouvais quelque part):Comment obtenir la date actuelle dans 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];
Cependant, chaque endroit où j'utilise -dateWithCalendarFormat:timeZone:
je reçois l'erreur suivante:
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')
Cela semble être quelque chose de très simple. Qu'est-ce que je rate?
En outre, j'ai remarqué à différents endroits et à des moments différents l'astérisque (*) est situé soit juste après l'heure NSDate* now
ou juste avant la variable NSDate *now
. Quelle est la différence entre les deux et pourquoi utiliseriez-vous l'un par rapport à l'autre?
Pourquoi vous devez utiliser NSCalendar est-ce une récente changement? Il y a beaucoup de code qui utilise NSDate pour ces choses. – Jason
Oui, de nombreuses méthodes sont maintenant obsolètes. –
Jason: NSDate est toujours là. Vous utilisez NSCalendarDate (c'est ce que -dateWithCalendarFormat: timeZone: renvoie), qui est prévu pour la dépréciation et n'existe pas sur l'iPhone. –