Nsdate возвращает значение "1604" за год?
Я пытаюсь получить данные о рождении для контактов, но если пользователь не выбирает год или контакт приходит из Facebook, а год или данные, которые он сам скрыт, поэтому он дает мне значение "1604" за год u может видеть, что я имею в виду на изображении.
2 ответов
Поздравляем, вы обнаружили деталь реализации!
во-первых, контакты хранит даты как точки во времени, и невозможно хранить точку во времени без года, потому что каждый момент времени имеет год. Таким образом, необходимо было принять решение о том, как адресная книга будет хранить "неизвестный" год в дате. Было решено, что" 1604 " будет прекрасным годом, по нескольким причинам:
- когда вы говорите о адресной книге, маловероятно, что в вашей записной книжке есть любой, кто родился в 1604 году.
- 1604 было до Юлианско-григорианского календаря.
таким образом, если вы вытаскиваете даты рождения из адресной книги, вам понадобится специальный случай 1604 как " дата рождения, где год неизвестный."
Примечание: насколько мне известно, эта функция поддерживается только при работе с Григорианским календарем. Для всех других календарей это поведение не определено.
вы можете init год в viewDidLoad.
или проверьте, не был ли год выбран пользователем, присутствует сообщение об ошибке.