1) Какой метод ввода для вашей даты?
Если это значение UIDatePicker
, вам нечего делать, UIDatePicker
вернет действительный NSDate . Я рекомендую вам манипулировать NSDate
объектами и использовать UIDatePickers
в качестве ввода даты, особенно во избежание вопроса проверки даты.
Если это текстовое поле, вы можете установить UITextField
inputView для UIDatePicker
, и вам не придется беспокоиться о проверке даты, как вы это сделаете очевидно, непосредственно имеется (разобранная) NSDate, которой вы можете напрямую манипулировать, будучи уверенным, что она действительна.
Затем в любом случае используйте NSDateFormatter
для преобразования вашего NSDate
(введенного пользователем через UIDatePicker) в NSString
(для вставки в вашу базу данных) .
2) Если у вас есть простой текст, введенный пользователем через клавиатуру, и вы не можете или не хотите использовать UIDatePicker
(даже как inputView
вашего UITextField
), вы можете конвертировать NSString
в NSDate
через NSDateFormatter
, чтобы проверить, возвращает ли он не nil
NSDate
(что означает, что это действительная дата).
Примечание. Вы также можете использовать классы NSRegularExpression
или NSPredicate
для проверки формата вашей строки ... но у вас не будет тонкостей проверки NSDate (например, проверка этого 31/02/2011 или 67/13/99 является недействительным)