Ios 将JSON日期转换为日期以存储在核心数据中

Ios 将JSON日期转换为日期以存储在核心数据中,ios,date,core-data,Ios,Date,Core Data,我从JSON格式的web服务接收日期 我想将其存储在核心数据中,在尝试这样做时出现错误后,读取JSON显示为纯文本 因此,我实现了一些代码来将其转换为日期。但是,日期仍然没有保存。不会引发任何错误,但它会发出黄色警告:使用类型为NSDate的表达式初始化NSString NSDate *creationdate = [dateFormatter dateFromString:creationdatestr]; 以下是代码: NSDateFormatter *dateFormatter = [

我从JSON格式的web服务接收日期

我想将其存储在核心数据中,在尝试这样做时出现错误后,读取JSON显示为纯文本

因此,我实现了一些代码来将其转换为日期。但是,日期仍然没有保存。不会引发任何错误,但它会发出黄色警告:
使用类型为NSDate的表达式初始化NSString

NSDate *creationdate = [dateFormatter dateFromString:creationdatestr];
以下是代码:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
                [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];

    //Following line shows yellow warning:Incompatible pointer types initializing NSString with an expression of type NSDate.
                NSString *creationdatestr = importItem.creationDate;
 NSDate *creationdate = [dateFormatter dateFromString:creationdatestr];
值得注意的是,当我将creationdate和creationdatestr都记录到控制台时,它们看起来都是相同的,如下所示,所以dateFormatter可能没有发生任何事情。在任何情况下,两个版本都不能正确保存到日期字段中:

creation date:2015-10-16 11:05:57
creation date as date:2015-10-16 11:05:57
如有任何建议,我们将不胜感激

编辑:

此方法捕获JSON提要并将其分配给对象。它似乎很好地捕获了JSON,但是,我无法说出传入JSON的数据类型。毕竟,它只是以文本的形式出现,我不知道IOS如何计算出生成传入文本的数据类型

在IDItemFromServer对象中,日期定义为NSDate类型的属性

- (NSArray *) convertFeedtoObject:(NSArray*)feed {
    // Create an array to store the locations
    NSMutableArray *_items = [[NSMutableArray alloc] init];  
    for (int i = 0; i < feed.count; i++) {
        NSDictionary *feedElement = feed[i];
        IDItemFromServer *newItem = [[IDItemFromServer alloc] init];
        newItem.name = feedElement[@"name"];
        newItem.date = feedElement(@"date");
NSLog(@"newItem.date");//this logs what looks like a date.
-(NSArray*)convertFeedtoObject:(NSArray*)提要{
//创建一个数组来存储位置
NSMutableArray*_items=[[NSMutableArray alloc]init];
for(int i=0;i
从您的警告/错误来看,它不是一个
NSString
,而是一个
NSDate

NSDate *creationdate = [dateFormatter dateFromString:creationdatestr];
因此,这行代码是错误的


什么是
importItem
?它是您的
NSManagedObject
子类吗?如果是,您正试图将现有的
NSDate
对象转换为
NSString
,但这不起作用,因为它已经是
NSDate

,我不明白。NSLog(@“%@”,object)将调用
[对象描述]
。这不是因为[object1描述]和[object2描述]显示来自同一类的相同值…我取出了NSLog,它会显示
importItem.creationDate
是一个
NSDate*
,对吗?我想是的。但是,出于某种原因,它不会保存到核心数据的日期字段中。错误消息是:属性的值类型不可接受:property=“creationDate”;所需类型=NSDate;给定类型=u NSCFString;值=2015-10-13 11:08:21这很有意义,我刚刚尝试将其声明为NSDate并保存,但它似乎是NSCF字符串,我读取的是NSString的一种风格。保存返回此错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“不可接受类型”属性的值:property=“creationdate”;所需类型=NSDate;给定类型=u NSCFString;值=2015-10-13 11:08:21。'importItem是用于导入的NSManagedObject子类。它有一个NSDate*creation date属性,因此它需要一个NSDate。我使用isKindOfClass测试了if,并以字符串的方式进行了测试,与黄色警告消息相反。然后
importItem.creationDate
将始终返回
nil
NSDate
。它永远不会返回
NSString
。此外,如何使用
NSManagedObject
之类的数据对象进行导入?从JSON设置
creationDate
值的代码在哪里?
NSDate *creationdate = [dateFormatter dateFromString:creationdatestr];