estoy usando siguiente código & su trabajo perfectamente bien en el iPhone OS 3,2para el iPhone OS 4.0 método "dateFromString" de NSDateFormatter devuelve 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;
}
Pero cuando traté de utilizar el mismo código que el iPhone OS 4.0 del dateObj era nulo.
La razón es:
método
- (id)init
para NSDateFormatter sólo está disponible en el iPhone OS 2.0 a través de iPhone OS 3.2. Está en desuso en iPhone OS 4.0.
¿Cuál es la solución para eso? ¿Cómo iniciar NSDateFormater? ¿Cuál es la alternativa?
Podemos convertir el NSString a NSDate usando NSDateComponents como: NSDateComponents * comps = [[NSDateComponents alloc] init]; [comps setDay: 6]; [comps setMonth: 5]; [comps setYear: 2004]; NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; NSDate * date = [fecha gregorFromComponents: comps]; [liberación de comps]; – Rambo
Pero, ¿ahora qué hacer con NSDateFormatter? ¿No podemos usarlo con IPhone OS 4.0? Si es así, entonces cómo ? – Rambo
solo porque está obsoleto no significa que no funcione; es posible que no funcione en el futuro. Si __NSLog (@ "% @", dateFormatter); __ después de llamar a init, ¿qué obtiene? Si no obtienes nada, esta advertencia no tiene nada que ver con tu problema. – deanWombourne