J'utilise le code suivant & son travail parfaitement bien dans l'iPhone OS 3,2pour l'iPhone OS 4.0 méthode « dateFromString » de NSDateFormatter renvoie nil
+(NSDate *)NSDateFromString:(NSString *)dateString
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *dateObj=[dateFormatter dateFromString:dateString];
[dateFormatter release], dateFormatter=nil;
return dateObj;
}
Mais quand j'ai essayé d'utiliser le même code que l'iPhone OS 4.0 le dateObj était nul.
La raison en est:
méthode
- (id)init
pour NSDateFormatter est uniquement disponible dans l'iPhone OS 2.0 à iPhone OS 3.2. Il est obsolète dans iPhone OS 4.0.
Maintenant, quelle est la solution pour cela? Comment init NSDateFormater? Quelle est l'alternative?
Nous pouvons convertir NSString en NSDate en utilisant NSDateComponents comme: NSDateComponents * comps = [[NSDateComponents alloc] init]; [comps setDay: 6]; [comps setMonth: 5]; [comps setAnnée: 2004]; NSCalendar * gregorian = [[attribut NSCalendar] initWithCalendarIdentifier: NSGregorianCalendar]; NSDate * date = [grégorien dateFromComponents: comps]; [version de comps]; – Rambo
Mais, maintenant que faire avec NSDateFormatter? Ne pouvons-nous pas l'utiliser avec IPhone OS 4.0? si oui alors comment? – Rambo
juste parce que c'est déprécié ne veut pas dire que cela ne fonctionnera pas - il pourrait ne pas fonctionner dans le futur. Si vous __NSLog (@ "% @", dateFormatter); __ après avoir appelé init, qu'obtenez-vous? Si vous n'obtenez rien, cet avertissement n'a rien à voir avec votre problème. – deanWombourne