Comment puis-je obtenir la date du jour dans le Cacao
Je suis arriver a commencé à développer pour l'iPhone et à ce titre je suis à la recherche à différents tutoriels en ligne ainsi que d'essayer quelques différentes choses moi-même. Actuellement, je suis en train de créer un compte à rebours jusqu'à minuit. Pour obtenir le nombre d'heures, de minutes et de secondes, je ne les suivants (que j'ai trouvé quelque part):
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ù je utiliser -dateWithCalendarFormat:timeZone:
j'obtiens 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. Ce qui me manque?
Aussi, j'ai remarqué à différents endroits et à différents moments de l'astérisque (*) est situé à droite après le temps NSDate* now
ou juste avant la variable NSDate *now
. Quelle est la différence entre les deux et pourquoi voudriez-vous utiliser un contre l'autre?
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser la syntaxe suivante:
Il n'y a pas de différence entre NSDate* maintenant, et NSDate *maintenant, c'est juste une question de préférence. De le compilateur point de vue, rien ne change.
Vous avez des problèmes avec iOS 4.2?
Utilisez ce Code:
-->20.01.2011 10:36:02
YY
sera sortie de l'année en 2 chiffres.YYYY
sera sortie de l'année en 4 chiffres.Vous pouvez également utiliser:
Je pense que cela présente les avantages suivants:
//vous pouvez obtenir la date/heure actuelle avec le code suivant:
Remplacer ceci:
Avec ceci:
fromDate:now
ne fonctionne pas pour moi. L'identificateurnow
n'est pas défini ou que ce soit. Comment l'initialiser avec la date du jour?[NSDate initWithTimeIntervalSinceNow:0]
semble être la voie.[NSDate init]
va en créer une avec l'heure actuelle.Le compilateur n'a pas de soins, mais de la mise astérisque avant que l'espace peut être trompeuse. Voici mon exemple:
Quel est le type de
b
?Si vous l'aurez deviné
int *
, vous avez tort. C'est justeint
.L'autre façon fait un peu plus clair en gardant l' * en regard de la variable, il appartient à:
Bien sûr, il y a deux façons qui sont encore plus clair:
Vous avez besoin de faire quelque chose le long des lignes suivantes:
Et ainsi de suite.
Voici une autre façon:
Vous perdez subsecond de précision avec la fonte de la NSTimeInterval à un int, mais qui ne devrait pas d'importance.
NSDate* now
etNSDate *now
sont la même chose: un pointeur sur un objet NSDate.Vous voudrez probablement utiliser descriptionWithCalendarFormat:fuseau horaire:paramètres régionaux: plutôt que dateWithCalendarFormat: — celle-ci retourne une NSCalendarDate, qui les docs disent est prévue pour être obsolète à un certain point.
Affiche originale - la façon dont vous êtes à la détermination de secondes jusqu'à ce que minuit ne fonctionne pas sur un jour où l'heure d'été commence ou se termine. Voici un morceau de code qui montre comment le faire... Ça va être du nombre de secondes (NSTimeInterval); vous pouvez faire la division/le module/etc pour trouver ce dont vous avez besoin.
Il n'y a pas de différence dans l'emplacement de l'astérisque (en C, ce qui l'Obj-C est en fonction, il n'a pas d'importance). C'est purement de préférence (de style).
Il m'a fallu un certain temps pour localiser pourquoi l'exemple d'application fonctionne, mais la mienne ne l'est pas.
La bibliothèque (Fondation.Cadre) que l'auteur se reporter à la bibliothèque du système (OS) où le sdk de l'iphone (je suis en utilisant 3.0) n'est pas supporte plus.
Donc l'exemple d'application (à partir de about.com, http://www.appsamuck.com/day1.html) les œuvres, mais la nôtre ne l'est pas.
Marque était juste ce code est BEAUCOUP plus efficace pour gérer les dates, heures min et secs. Mais il a oublié l' @ au début de la chaîne de format de déclaration.
retour 3:33 AM