Сохранить NSDate в CoreData - PullRequest
       17

Сохранить NSDate в CoreData

1 голос
/ 07 сентября 2011

Я хочу сохранить NSDate из XML в coreData. Я не знаю, как установить значение для NSDate. Может ли кто-нибудь оказать мне небольшую помощь? Мой атрибут сущности - NSDate. Или это должна быть строка и сохранить дату как строку ??

[Sets setValue:[TBXML textForElement:xmlDate] forKey:@"beginDate"];

Спасибо за любой ответ и помощь,
brush51

Ответы [ 2 ]

6 голосов
/ 07 сентября 2011

Независимо от того, намеренно вы запутываете или нет, вы не говорите этого, поэтому я собираюсь догадаться, что:

  • [TBXML textForElement:xmlDate] возвращает строку NSString
  • beginDate является свойством Date объекта Sets

В этом случае ваш код явно неверен: вы должны передать экземпляр NSDate в setValue:forKey:.Ваш код будет выглядеть так:

NSDateFormatter *myXMLdateReader = [[NSDateFormatter alloc] init];
[myXMLdateReader setDateFormat:@"yyyy-MM-dd"]; // for example
NSDate *itsDate = [myXMLdateReader dateFromString:[TBXML textForElement:xmlDate]];
[myXMLdateReader release];
[Sets setValue:itsDate forKey:@"beginDate"];
3 голосов
/ 07 сентября 2011

Нет проблем добавить NSDate к CoreData. Все, что вам нужно сделать, это преобразовать NSString из XML-файла в NSDate объект. Для конвертации NSString <-> NSDate вы можете использовать NSDateFormatter класс. В примере ниже вы можете увидеть, как я это делаю:

NSDateFormatter *parseFormatter = [[[NSDateFormatter alloc] init] autorelease];
[parseFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"US"] autorelease]];
[parseFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSString *dateString = @"Mon, 02 May 2011 21:12:56 +0000";
NSDate *dateToAdd = [parser.parseFormatter dateFromString:dateString];

Вы можете установить необходимый формат даты и использовать этот код в своем проекте.

...