CoreData中的日期是什么格式 - 日期还是字符串?

时间:2017-03-24 12:48:06

标签: core-data

我有一个例程,用于比较网站上最新更新记录的时间与iPad上CoreData保存的相同记录。此处, obsLastUpdated 是CoreData中设置为Date类型的字段。

将数据从CoreData读入NSDate:

NSDate *iPadDate = [[self.recordDetails objectAtIndex:0] obsLastUpdated]; //gets the date from CoreData

我收到了这个警告:

  

使用表达式初始化'NSDate *'的指针类型不兼容   类型'NSString *'

然而,这只是一个警告,一切仍然有效。如果我尝试将此NSDate iPadDate与另一个NSDate进行比较,则没有错误,一切正常。但我想深究警告。

如果我从CoreData读取字符串并转换为NSDate,我似乎无法正确格式化并且应用程序崩溃。我试过了:

NSString *iPadDateStr = [[self.recordDetails objectAtIndex:0] obsLastUpdated];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *iPadDate = [dateFormat dateFromString: iPadDateStr];

我意识到CoreData不会将日期存储为NSDate,但是它是如何存储的,以及如何绕过警告?

CoreData实体:

enter image description here

更新:

错误发生在将obsLastUpdated声明为NSString的类中。改为NSDate,一切都很好。

1 个答案:

答案 0 :(得分:0)

只需将其定义为NSDate,而不是NSString

MyEntity *entity = [self.recordDetails first];

NSDate *iPadDate = entity.obsLastUpdated;