Date Picker работает по-другому на 3GS, чем 3G, Touch и iPad - PullRequest
1 голос
/ 09 июля 2010

Мое приложение попало в магазин приложений сегодня.У меня был пользователь, отправивший странную ошибку.У меня есть средство выбора даты, которое возвращает дату, которую я храню в виде строки в SQLite.Я тестировал приложение на симуляторе, 3G, itouch и iPAD.На все это работает как положено.Однако в 3GS этого пользователя он добавляет день к дате, выбранной в средстве выбора даты.

Я не делаю никаких манипуляций с датой, кроме использования NSDateformatter со стилем NSDateFormatterMediumStyle для преобразования в строку для хранения вБД.

Есть идеи, почему это будет работать по-другому на 3GS?

Ответы [ 3 ]

1 голос
/ 02 ноября 2010

Рассматривали ли вы возможность того, что ошибка связана с обновлением iOS4, а не с конкретной проблемой устройства?

У меня была такая же проблема, но только после обновления до iOS4. Мой форматер выглядит так:

[aDateFormatter setDateFormat: @ "гггг-мм-дд чч: мм: сс г "];

и мои даты таковы:

2009-10-27 7:30:12 -0700

Мне удалось решить проблему, просто переместив режим выбора даты, установленный за до , применяя макс / мин / выбранную дату к средству выбора даты. В моем случае это:

aDatePicker.datePickerMode = UIDatePickerModeDate;

0 голосов
/ 09 июля 2010

Убедитесь, что вы устанавливаете NSLocale на любых форматерах и сканерах даты.По умолчанию они используют языковой стандарт пользователя, который может отличаться, если они установили для него что-то отличное от вашего языкового стандарта.

0 голосов
/ 09 июля 2010

Звучит скорее как проблема с часовым поясом, чем с 3GS.

Я не уверен, верно ли это для NSDateformatter (я попробую), но если вы получите описание свойства NSDate , выполучить местное время (со смещением по Гринвичу).

Если вы сохраняете эти строки местного времени, а затем отменили их сохранение в предположении GMT (или если часовой пояс на устройстве изменился), тогда время будет неправильным.Проверьте, в каком часовом поясе находится пользователь, и попробуйте выполнить тестирование с соответствующим часовым поясом системы (симулятор будет использовать часовой пояс MacOS).

...