Проблема выбора времени с OS4? - PullRequest
0 голосов
/ 03 октября 2010

У меня есть приложение, которое я обновляю до OS4.В этом я использую таймер.Из этого я хочу получить час и минуту как целое.Это код, который я использовал ранее для этого ...

NSDate *selected = [timePicker date];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit| NSMinuteCalendarUnit |NSSecondCalendarUnit;


NSDateComponents *compsDur = [gregorian components:unitFlags fromDate:selected];
int hDur = [compsDur hour];
int mDur = [compsDur minute];
int sDur = [compsDur second];

[gregorian release];

Теперь все работало нормально здесь.Моя проблема в том, что когда я обновляюсь до OS4, если я изменяю свои настройки времени телефона, скажем, из Великобритании в США, я получаю случайное значение, а не то, что ввел пользователь.

Чтобы дать вам конкретный пример, в ВеликобританииУстановив время на 1 минуту, я получаю значение возврата mDur, равное 1. Если я затем переключу свой телефон на нью-йоркское время, я получу 19 часов и 6 минут?Что происходит?

1 Ответ

1 голос
/ 03 октября 2010

Я думаю, это может быть связано с недокументированным изменением UIDatePicker в iOS4, где по умолчанию используется часовой пояс GMT (как я думаю).

Вы можете установить часовой пояс UIDatePicker на системный часовой пояс, чтобы пользователь получил ожидаемый опыт.

yourDatePicker.timeZone = [NSTimeZone systemTimeZone];
...