J'utilise dateByAddingComponents:toDate:options:
et dateByAddingUnit:value:toDate:options:
et j'utilise la liaison facultative pour extraire la date. Comme ceci:Quand est-ce que dateByAddingComponents: toDate: options renvoient nil?
guard let startOfNextMonth = calendar.dateByAddingComponents(oneMonthComponent, toDate: startOfThisMonth, options: []) else {
return nil
}
Où oneMonthComponent
est juste un NSDateComponent avec la valeur du mois à 1.
Quand je lis à ce sujet, dans la documentation ils ont tous deux dire quelque chose comme:
Retours nul si la date tombe en dehors de la plage définie du récepteur ou si le calcul ne peut pas être effectué.
Et je me demandais, quand est-ce exactement causé. Si j'ajoute juste un mois à une date, y a-t-il un moyen qui pourrait être nul? Est-ce parce que certaines différences dans les autres systèmes calendriers, où l'ajout de certaines unités n'a pas de sens?
J'ai cherché autour et j'ai été incapable de trouver une instance où il retournerait zéro.
Y a-t-il quelque chose qui pourrait rendre le code ci-dessus nul? Quel est un exemple où l'ajout de composants pourrait être nul?
Notez que dans Swift> = 3, le nom de la méthode est 'date (byAdding: to: options:)'. –