ich folgenden Code verwenden & seine völlig in Ordnung in iPhone OS 3,2für iPhone OS 4.0 "dateFromString" Methode des NSDateFormatter 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;
}
arbeitet Aber als ich versuchte, den gleichen Code I iPhone OS 4.0 die verwenden dateObj war null.
Der Grund dafür ist:
- (id)init
Methode für NSDateFormatter ist nur in iPhone OS 2.0 über iPhone OS 3.2. Es ist in iPhone OS 4.0 veraltet.
Nun, was ist die Lösung dafür? Wie starte ich NSDateFormater? Was ist die Alternative?
Wir können den NSString in NSDate konvertieren mit NSDateComponents wie: NSDateComponents * comps = [[NSDateComponents Alloc] init]; [comps setDay: 6]; [Komp. SetMonth: 5]; [comps setYear: 2004]; NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; NSDate * Datum = [gregorian dateFromComponents: comps]; [comps release]; – Rambo
Aber was nun mit NSDateFormatter zu tun? Können wir es nicht mit IPhone OS 4.0 verwenden? Wenn ja, wie? – Rambo
nur weil es veraltet ist bedeutet nicht, dass es nicht funktioniert - es könnte nur in der Zukunft nicht funktionieren. Wenn du __NSLog (@ "% @", dateFormatter); __ nachdem du init angerufen hast, was bekommst du? Wenn Sie keine Null erhalten, hat diese Warnung nichts mit Ihrem Problem zu tun. – deanWombourne