У меня возникла проблема с отказом NSDateFormatter на одном пользовательском устройстве (при возврате нуля при разборе строки) и отлично работает, когда я запускаю его локально (либо в симуляторе, либо на моем устройстве).
Я пытаюсь исключить, что может вызвать разницу в этом поведении. Моя первая мысль была локали, но я попытался установить ее явно, чтобы гарантировать, что тот же язык всегда используется, но это не имеет никакого значения.
Вот код:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[dateFormatter setLocale:locale];
[locale release];
NSDate *theDate = [dateFormatter dateFromString:dateString];
NSLog(@"PARSING DATE %@ AS %@", dateString, theDate);
На неисправном устройстве я получаю:
PARSING DATE 2010-11-28T20:30:49-0000 AS (null)
Но локально я получаю:
PARSING DATE 2010-11-28T20:30:49-0000 AS 2010-11-28 20:30:49 +0000
Это сводит меня с ума, я что-то пропустил?
Я запускаю 4.2 локально (симулятор) и на своем устройстве (iPhone 4). Неудачное устройство - это 3GS, работающий 4.2.1.
Любые идеи будут высоко оценены!