无法将 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 保存到日期/时间字段,“无效日期”

将用户输入从文本字段存储到 Parse 数据库

在Parse云中存储密钥的最佳方法是什么?

无法将图像从 PARSE 加载到 PFTableViewCell 的 imageView 属性中

从 Parse 导出密码

核心数据 - NSDate 属性在持久存储中发生变化