Я получаю очень странное поведение на UIDatePicker.У меня есть представление с датчиком выбора, объявленным в файле .h как IBOutlet UIDatePicker * datePicker;с имуществом неатомным и сохранить.datePicker правильно связан в файле IB.
В коде я устанавливаю минимальную, максимальную, начальную дату и действие для вызова UICOntrolEventValueChanged, используя следующий код
If (!currentDate) {
initialDate = [NSDate date];
} else {
initialDate = currentdate;
}
[datePicker setMinimumDate:[NSDate date]];
[datePicker setMaximumDate:[[NSDate date] addTimeInterval:5 * 365.25 * 24 * 60 * 60]]; // to get upto 5 years
[datePicker setDate:initialDate animated:YES];
[datePicker addTarget:self action:@selector(getDatePickerValue:) forControlEvents:UIControlEventValueChanged];
В getDatePickerValue я получаюновая дата с использованием datePicker.date.
Когда представление закрывается (с помощью кнопки «Готово»), я получаю текущее значение даты, используя datePicker.date.
Теперь, если представление вызывается без «currentDate»,сборщик возвращает «сегодняшнюю дату».Это то, что происходит при первом вызове моего pickerView.Каждый последующий вызов представления без «текущей даты» дает мне другую и более позднюю дату с сегодняшнего дня.Итак,
в первый раз я получаю сегодняшнюю дату, скажем, 9 июня 2010 года
во второй раз datePicker.date возвращает 10 июня 2010 года
в третий раз 11 июня 2010 года и так далее.Хотя это не всегда постепенно, но в основном это так.
Я установил NSLogs и убедился, что начальная дата установлена правильно.
Проблема только на устройстве (на OS 3.0), проблема не повторяется на симуляторе.
Я не могу найти то, что сделал неправильно.Я надеюсь, что кто-то еще сталкивался с подобной проблемой и может помочь мне решить эту проблему.