¿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?