Я думаю, что вы выбрали неправильный подход.С другой стороны, я бы ограничил и отформатировал UITextField, чтобы пользователь вводил дату в определенном формате.Или просто используйте сборщик дат.Также есть различные способы ввода данных пользователем.
Или вы можете прочитать это: NSDate
Другой вариант - создать список принятых датформаты: #define DATEFORMATS @[@"MM/dd/yyyy", @"MM/dd/yy",...
Затем предложите метод, которому вы передадите строку даты, и проверьте, можете ли вы отформатировать ее:
+ (NSDateFormatter*)getDateFormat:(NSString*)dateString {
NSArray *dateFormats = DATEFORMATS;
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSDate *date = nil;
for (NSString *dateFormat in dateFormats) {
[formatter setDateFormat:dateFormat];
date = [formatter dateFromString:dateString];
if (date) {
return formatter;
}
}
return nil;
}
Если вы получите ноль, то это не дата или формат, который вы не делаетеслужба поддержки.В противном случае у вас будет правильный формат, который вам нужен.Вы можете переключить это, чтобы вернуть дату вместо формата.У меня так, потому что мне нужен формат, а не дата для проекта.