Проблема с кодом выбора даты - PullRequest
0 голосов
/ 03 августа 2011

Я недавно добавил в свое медицинское приложение функцию, которая вычисляет возраст пациента по введенной дате.Если возраст равен нулю, то средство выбора даты отображает 1 января 1950 г. в качестве начальной даты по умолчанию для ввода даты рождения.Код отлично работает на iOS 4.0+ на устройствах iPhone и iPad.Однако при тестировании непосредственно перед отправкой обновления приложения я обнаружил, что на моем iPod первого поколения происходит сбой средства выбора даты, которое я сохраняю для тестирования iOS 3.1.3.В качестве виновника я сузил следующий код, который устанавливает дату по умолчанию для средства выбора даты:

    if (age == 0) {
        NSDateFormatter *myFormatter = [[NSDateFormatter alloc] init];
        [myFormatter setDateFormat:@"M/d/yy"];
        NSDate *initialDate = [myFormatter dateFromString:@"January/01/1950"];
        [picker setDate:initialDate animated:YES];
    }

В журнале iPod отображаются следующие две строки после сбоя:

<Warning>: *** Assertion failure in -[UIDatePickerView _updateBitsForDate:andReload:animateIfNeeded:], /SourceCache/UIKit/UIKit-984.38/UIDatePicker.m:908

и

<Error>: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: date'

Буду признателен за любую помощь в понимании, почему этот сбой происходит только на старом устройстве, и как решить эту проблему.Заранее спасибо.

1 Ответ

3 голосов
/ 03 августа 2011

В соответствии со стандартом tr35-10 ваш формат даты должен быть MMMM/dd/yyyy.

Для эффективности .

вам также следует форматеры кэша.
...