Pb avec les dates
muqaddar
Administrateur
Soit le code suivant :
Le premier NSLog me renvoie : string : 2005-7-7
Le deuxième (null).
Autrement dit, dateWithString ne veut pas de cette string pour établir une date.
J'ai cette erreur : Invalid parameter not satisfying: aString != nil
Que lui faut-il comme string. Tout à l'heure NSDate avalait cette string... (mais je dois la paramétrer) :why?:
string = [[[[[NSString stringWithString:[object3 stringValue]] stringByAppendingString:@"-"] stringByAppendingString:[object2 stringValue]] stringByAppendingString:@"-"] stringByAppendingString:[object1 stringValue]];<br /> NSLog(@"string : %@", string);<br /> date = [NSCalendarDate dateWithString: string calendarFormat:@"%d/%m/%Y" locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];<br /> NSLog(@"date : %@", date);
Le premier NSLog me renvoie : string : 2005-7-7
Le deuxième (null).
Autrement dit, dateWithString ne veut pas de cette string pour établir une date.
J'ai cette erreur : Invalid parameter not satisfying: aString != nil
Que lui faut-il comme string. Tout à l'heure NSDate avalait cette string... (mais je dois la paramétrer) :why?:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
[tt]string = [[[NSString stringWithString:[object3 stringValue stringByAppendingString:@-] stringByAppendingString:[object2 stringValue]] stringByAppendingString:@-] stringByAppendingString:[object1 stringValue]][/tt];
devient:
[tt]string = [NSString stringWithFormat:@%@-%@-%@",[object3 stringValue],[object2 stringValue],[object1 stringValue]];[/tt]
Ton calendarFormat n'est pas valide non plus. il faut @%Y-%m-%d, ou alors tu fais:
[tt]string = [NSString stringWithFormat:@%@/%@/%@",[object1 stringValue],[object2 stringValue],[object3 stringValue]];[/tt]
Le bug venait du format. Justement, je comptais profiter du format pour franciser la date...
Je vais donc le faire avec descriptionWithLocale ou y a t-il autre chose de mieux ? Histoire de remettre %d %m et %Y dans le bon sens.
Autre question, pour la localisation, il faudra que je ne touche pas le code, donc comment faire ?
Pour l'instant, j'ai ma date avec cela :
date = [NSCalendarDate dateWithString: string calendarFormat:@%Y-%m-%d locale:NSUserDefaults standardUserDefaults] dictionaryRepresentation;
Que je dois transformer en string localisée avec "description".
[tt]NSUserDefauts* defaults = [NSUserDefaults standardUserDefaults];
NSLog([date descriptionWithCalendarFormat:[defaults objectForKey:NSShortDateFormatString]
                   locale:[defaults dictionaryRepresentation]]);[/tt]
C'est parfait.