我正在使用 RestKit 将 JSON 同步到本地数据库,并且在保存日期时遇到了一些问题,我不断收到Category is not key value coding-compliant for the key "createdAt".
从远程 Web 服务获得的 JSON 是一个字符串,如下所示:
"created_at":"2012-06-20T13:29:54Z"
在我的本地xdatamodeld
文件中,我尝试将created_at
属性设置为我尝试过 NSSTring 和 NSdate 作为数据类型的地方。我有一个带有 created_at @property: 的实体的本地模型文件@property (nonatomic, retain) NSDate *createdAt;
。我也在这里尝试过 NSString 和 NSDate 。我也尝试为 . 创建一个日期格式化程序RKManagedObjectMapping
,但它也没有帮助。像这样:
NSDateFormatter* dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
categoryMapping.dateFormatters = [NSArray arrayWithObject: dateFormatter];
我的映射如下所示:
[categoryMapping mapKeyPath:@"categories.created_at" toAttribute:@"createdAt"];
关于我做错了什么的任何想法?
** 更新 **
我怀疑 Z 导致了错误。在映射请求之前,我怎么能把它从请求中去掉?
** 更新 #2 **
我现在也尝试添加一个新的 addDefaultDateFormatter,但这并没有奏效。像这样(在我创建自己的映射之前):
// JSON date format: 2012-06-20T13:29:54Z
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
[RKObjectMapping addDefaultDateFormatterForString:@"yyyy-MM-dd'T'HH:mm:ssZ" inTimeZone:nil];
[RKObjectMapping addDefaultDateFormatter:dateFormatter];