2013-10-09 2 views
1

Уверен, что мне не хватает чего-то простого. Любая помощь приветствуется.NSDateFormatter приводит к null NSString

В следующем коде [ri EventDate] = '2014-02-07';

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 
NSString *ed = [dateFormatter stringFromDate:[ri EventDate]]; 
NSLog(@"eventDate: %@ -> %@", [ri EventDate], ed); 

Результатом является: EVENTDATE: 2014-02-07 -> (нуль)

BTW - После того, как я получаю это разрешающие строки я буду изменить формат даты. Первые вещи первые ...

+4

Я никогда не знал даты для входа в таком простом формате. Моя ставка '[ri EventDate]' уже является строкой. Дело закрыто. – Joe

+0

Из класса NSObject - @property NSDate * EventDate; – alockrem

+2

NSObject наверняка не имеет свойства EventDate – vikingosegundo

ответ

1

Ваш EventDate был случайно назначен строкой. Вам нужно отследить, где произошло это задание. Если у вас возникли проблемы с определением того, где ему была назначена строка, вы можете отлаживать свойство, объявив его неатомным, внедряя сеттер и затем устанавливая условную точку прерывания. Как только код сломается, вы получите доступ к трассировке стека, которому присвоено неверное значение. Не забудьте удалить nonantomic если атомное необходимо, и удалить пользовательские сеттер, когда делается отладка

Breakpoint Состояние: EventDate != nil && ![EventDate isKindOfClass:[NSDate class]]

Debug

+0

Большое спасибо. Я уверен, что вы правы. Я отслежу это и разрешу. – alockrem

+0

Подтверждение: NSDate хранился как NSString. Я не знал, что это возможно. После того, как он стал NSDate, он работал, как ожидалось. Еще раз спасибо за помощь каждого. – alockrem

0

Код правильно, [ri EventDate], вероятно, NSString, если NSLog()NSDate, выход похож на 2013-10-09 19:27:30 +0000, а не 2014-02-02.

Вы должны сначала преобразовать [ri EventDate] в NSDate. Пример:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-MM-dd"]; 

NSDate *date = [df dateFromString:[ri EventDate]]; 
+0

Большое спасибо. Я уверен, что вы правы. Я отслежу это и разрешу. – alockrem

Смежные вопросы