将NSDate保存到CoreData

时间:2011-09-07 10:20:21

标签: objective-c core-data nsdate setvalue

我想将NSDate从XML保存到coreData。 我不知道如何设置NSDate的值。有人能给我一点帮助吗? 我的实体属性是NSDate。或者它应该是一个字符串并将日期另存为字符串??

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

感谢您的回复和帮助,
brush51

2 个答案:

答案 0 :(得分:6)

无论你是否故意混淆,你都不会这么说,所以我猜错了:

  • [TBXML textForElement:xmlDate]返回NSString
  • beginDate是实体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"];

答案 1 :(得分:3)

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];

您可以设置有需要的日期格式并在项目中使用此代码。