¿Cuándo dateByAddingComponents: toDate: options return nil?

He estado usandodateByAddingComponents:toDate:options: ydateByAddingUnit:value:toDate:options: y usando el enlace opcional para obtener la fecha. Me gusta esto:

guard let startOfNextMonth = calendar.dateByAddingComponents(oneMonthComponent, toDate: startOfThisMonth, options: []) else {
    return nil
}

DóndeoneMonthComponent es solo un NSDateComponent con el valor del mes establecido en 1.

Cuando lo leí, en la documentación ambos dicen algo como:

Devuelve nulo si la fecha cae fuera del rango definido del receptor o si el cálculo no se puede realizar.

Y me he estado preguntando, ¿cuándo es eso exactamente causado? Si solo agrego un mes a una fecha, ¿hay alguna manera de que alguna vez sea nula? ¿Es esto debido a algunas diferencias en los otros sistemas calendáricos, donde agregar algunas unidades no tiene sentido?

He buscado alrededor y no he podido encontrar una instancia en la que devuelva nulo.

¿Hay algo que pueda hacer que el código anterior sea nulo? ¿Cuál es un ejemplo donde agregar componentes podría ser nulo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta