NSDateFormatter, возвращающий ноль в OS 4.0 - PullRequest
26 голосов
/ 22 июня 2010

У меня был следующий код, работающий в OS 3.x

NSString *stringDate = @"2010-06-21T20:06:36+00:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *theDate = [dateFormatter dateFromString:stringDate];
NSLog(@"%@",[dateFormatter stringFromDate:theDate]);

, но теперь в новейшем xcode 3.2.3 под симулятором iOS4 переменная theDate равна nil.

Я просмотрел ссылку на класс и не вижу ничего устаревшего или реализованного по-другому для iOS4 с этими конкретными методами.Что я пропустил?

Ответы [ 13 ]

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

Ссылка, которую разместил Эльфред, сделала свое дело. Я столкнулся с той же проблемой, когда конвертировал свое приложение с 3.1.3 на iOS4. Ссылка содержит класс ISO8601DateFormatter, который является гораздо более превосходным расширением, чем мой собственный класс утилит даты.

Эльфред писал: Я недавно столкнулся с этим вопросом. В итоге я использовал парсер Питера Хоси ISO8601 Это доступно здесь: http://boredzo.org/iso8601unparser/

0 голосов
/ 27 июня 2010

Я просто отлаживал точно такую ​​же проблему.У меня та же строка даты, что и у вас, которая работает в 3.x, а не 4.0.Симптомы те же.

При просмотре документации NSDateFormatter я вижу:

Инициализация средства форматирования даты - init Доступно в iPhone OS 2.0 через iPhone OS 3.2

Это говорит о том, что initметод устарел для iOS 4.0.Я не уверен, что это значит.

0 голосов
/ 22 июня 2010

выглядит хорошо для меня.

Работает ли оно по-прежнему на реальном устройстве?

Если это так, подайте отчет об ошибке для симулятора, в противном случае подайте отчет об ошибке для iOS 4.

...