La creazione di un nuovo calendario NSCalendar
-
20-09-2019 - |
Domanda
Voglio essere in grado di convertire tra i calendari gregoriano e giuliano (nota: non "data julian") utilizzando NSCalendar su iPhone. Come posso sottoclasse NSCalendar di utilizzare il calendario giuliano? Voglio fare questo senza riguardi per 1582 o 1752 o un dato anno.
Soluzione
Mentre si può certamente avere un andare a esso, ma ho il sospetto che NSCalendar
è difficile da sottoclasse. E 'a ponte numero verde, che complica le cose; è intrecciato con NSLocale, che complica le cose; è inizializzato con identificatori piuttosto che essere sottoclasse, che complica le cose; e non dà indicazioni su quali metodi sono i suoi primitivi che complica le cose ... ...
Avete bisogno la sottoclasse, al fine di collegare in un'architettura esistente? In caso contrario, probabilmente sarebbe più semplice per creare un oggetto da zero che ha un'interfaccia simile. Si può essere in grado di utilizzare un NSGregorianCalendar
per fare la maggior parte del lavoro per voi e solo compensato la data per i giorni necessari prima di calcolare i componenti di data. Avrete bisogno di logica speciale per 1700, 1800 e 1900 (e, naturalmente, 2100, etc.) in quanto NSGregorianCalendar
non vi permetterà di creare componenti della data per un giorno salto di quegli anni, ma questo è ancora probabilmente più facile che fare tutta la componente data calcoli a mano.
Solo curioso quale sarebbe l'obiettivo di un tale calendario?