¿Hay una mejor manera de encontrar la medianoche mañana?

¿Hay una mejor manera de hacer esto?

-(NSDate *)getMidnightTommorow {
    NSCalendarDate *now = [NSCalendarDate date];
    NSCalendarDate *tomorrow = [now dateByAddingYears:0 months:0 days:1 hours:0 minutes:0 seconds:0];
    return [NSCalendarDate dateWithYear:[tomorrow yearOfCommonEra]
                                  month:[tomorrow monthOfYear]
                                    day:[tomorrow dayOfMonth]
                                   hour:0
                                 minute:0
                                 second:0
                               timeZone:[tomorrow timeZone]];
}

Tenga en cuenta que siempre quiero la próxima medianoche, incluso si es medianoche cuando hago esa llamada, sin embargo, si es 23:59:59, por supuesto que quiero la medianoche que viene en un segundo.

Las funciones del lenguaje natural parecen inestables, y no estoy seguro de qué haría Cocoa si supero los 32 en el campo "día". (Si eso funcionara, podría eliminar el [ahora dateByAddingYears: ...] call)

Respuestas a la pregunta(5)

Su respuesta a la pregunta