无法将 NSDate 从 Parse 存储到 Core Data
Posted
技术标签:
【中文标题】无法将 NSDate 从 Parse 存储到 Core Data【英文标题】:Can't store NSDate from Parse to Core Data 【发布时间】:2013-08-30 13:30:58 【问题描述】:我正在尝试将 PFObject 中的日期字段存储到我的核心数据实体的日期类型属性中。
coreDataObject.createdAt = [object createdAt];
这是 XCode 返回的错误:property = "updatedAt";所需类型 = NSDate;给定类型 = __NSCFString;
在此之前,我将日期存储为字符串并解析 [object createdAt] 并且一切正常,但现在它无法将其识别为 NSDate。
我尝试过投射,但似乎没有任何效果。
有什么想法吗?
注意,就是这么简单:
NSDate *teste = oneParseRow.createdAt;
NSLog(@"teste is %@", ttt);
注意:
[oneParseRow objectForKey:@"createdAt"];
或任何类似的东西,以任何方式根本不起作用。你只需要使用 .createdAt。
【问题讨论】:
“对象”的类别是什么?似乎对象的方法 createdAt 正在返回一个字符串。 object 是一个 PFObject,来自 Parse 框架的一个对象 为什么你的错误信息提到了updatedAt,但你的代码示例使用的是createdAt?有没有可能错误不在您发布的代码中? 完全是@HectorRamos,我的错,我太专注于 createdAt,由于我的代码长度,我忘记了我还有另一个名为 updatedAt 的属性。谢谢! 【参考方案1】:您能否在 Parse 文档中验证 createdAt 方法返回 NSDate?它似乎正在返回一个 NSString。
试试这个代码:
id created = [object createdAt]
coreDataObject.createdAt = created;
在第一行放置一个断点,然后在调试器中检查 createdAt 返回的对象的类型。如果它不是 NSString 而不是 NSDate,则必须将其转换为带有 NSDateFormatter 的 NSDate。
【讨论】:
调试(po created)时,我收到此错误[no Objective-C description available]。 好的,所以使用 NSLog(@"%@",id);看看它是什么类。 @property (nonatomic, retain, readonly) NSDate *createdAt ... from parse.com/docs/ios/api/Classes/PFObject.html#//api/name/…以上是关于无法将 NSDate 从 Parse 存储到 Core Data的主要内容,如果未能解决你的问题,请参考以下文章
CloudKit,无法将 NSDate 保存到日期/时间字段,“无效日期”