objective c - Generar NSDate de día, mes y año
objective-c ios (3)
Intento generar un NSDate de un mes día y año (todo en formato entero).
En este momento mi intento es tal:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
NSNumber *day = [dataSource valueForKey:@"day"];
NSNumber *month = [dataSource valueForKey:@"month"];
NSNumber *year = [dataSource valueForKey:@"year"];
[components setDay:[day intValue]];
[components setMonth:[month intValue]];
[components setMonth:[year intValue]];
NSDate *_date = [calendar dateFromComponents:components];
Sin embargo, _date genera lo siguiente cuando día = 24, mes = 8, año = 2011:
0168-07-25 04:56:02 +0000
Debo estar haciendo algo horriblemente mal, pero no tengo idea de qué. Alguien sabe lo que podría estar pasando?
Llamas a setMonth dos veces, la segunda vez al valor del año. Debiera ser:
[components setDay:[day intValue]];
[components setMonth:[month intValue]];
[components setYear:[year intValue]];
Un error flagrante es:
[components setMonth:[year intValue]]; //setting month with year!
Usted tiene un error tipográfico en su código: (la última línea debe establecerseAño setYear:
[components setDay:[day intValue]];
[components setMonth:[month intValue]];
[components setYear:[year intValue]];