дата из строки вылетает устройство - PullRequest
0 голосов
/ 07 апреля 2011

Я читаю RSS и оттуда элемент: <pubDate> Чт, 07 апреля 2011 13:37:41 + 0000 </pubDate> Я использую следующий код, чтобы превратить полученную строку в NSDate

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];  

        [dateFormatter setDateFormat:@"E, d LLL yyyy HH:mm:ss Z"]; // Thu, 18 Jun 2010 04:48:09 -0700 


        NSDate *date = [dateFormatter dateFromString:[self.currentDate stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]];        

        [item setObject:date forKey:@"date"]; 

Код отлично работает в симуляторе, но на устройстве он вылетает. Причина в том, что объект NSDate остается нулевым, и когда я добавляю его в словарь, он вылетает из приложения.

Я много читал об этой проблеме, но ни одно из решений не помогло мне. Я имею в виду, что многие из них сделали, но в симуляторе ...

Любая помощь приветствуется, Luka ...

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Отметьте две вещи, чтобы устранить различия между симулятором и устройством ios.

  1. Устройство iOS чувствительно к регистру.Поэтому вы должны проверить строку, если что-то не так.

  2. Настройки локали могут отличаться в вашем симуляторе и iOS.чтобы предотвратить это, определите правильный языковой стандарт форматера даты.

    NSLocale * usLocale = [[NSLocale alloc] initWithLocaleIdentifier: @ "en_US"];

    [dateFormatter setLocale: usLocale];

0 голосов
/ 07 апреля 2011

Проверьте поведение вашего форматера с помощью

[dateFormatter dateFromString:[NSDate date]]

Если это не формат форматера, это означает, что виновата ваша nsstring.

Не могли бы вы записать строку, которую вы пытаетесь преобразовать? Это, вероятно, тот, кто виноват

NSLog(@"string is: %@", self.currentDate);
...