¿Cómo obtener NSDate para las 00:00 del día de [fecha de NSDate]?

Necesito obtener un objeto NSDate para las 00:00 (comienzo del día) desde [fecha de NSDate], digamos si actualmente son las 11:30 am (devuelto por [fecha de NSDate]), el 01/06/2012, ahora Necesito tener un NSDate para las 00:00 am del 01/06/2012.

No he probado esto, pero lo que tengo en mente es:

NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSDate *morningStart = [calendar dateFromComponents:components];

Así que primero obtengo la fecha actual (digamos que es 01/06/2012), y construyo un NSDateComponent para la fecha, luego establezco la hora / minuto / segundo en 0 y el año / mes / día no debe cambiarse (es decir, 01 / 06/2012) luego creo un NSDate para esta configuración de componente y ¿puedo obtener una fecha de 00:00:00 01/06/2012?

Respuestas a la pregunta(3)

Su respuesta a la pregunta