将_NSCFString转换为日期

时间:2015-10-21 20:43:20

标签: ios objective-c core-data

我正在尝试在Core-data中的日期属性中保存日期。

但是,我收到了错误

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unacceptable type of value for attribute: property = "lasttouched"; desired type = NSDate; given type = __NSCFString; value = 2015-10-13 11:08:21.'

当我将有问题的值记录到控制台时,它会给我以下内容:2015-10-13 11:08:21

关于这个的问题是,我从属性为NSDate的对象中获取它。

当我尝试使用NSDate从String转换为NSDateFormatter时,它表示输入是NSDate而不是字符串。

任何人都可以建议我应该做些什么才能使上述内容正确保存?

1 个答案:

答案 0 :(得分:-1)

对于任何可能在将来遇到这个奇怪问题的人......

正如我的问题所述,但有些人在阅读中明显跳过这不是日期格式化问题,因为IOS不允许我使用NSDateFormatter将参数转换为日期,说这个参数已经是日期,而不是串。

在我尝试将值保存到core-date中的日期属性的同时,它拒绝了它说它是_NSCF字符串,而不是日期。

换句话说,IOS提供了两条相互矛盾的错误消息......当我尝试将其视为字符串和字符串时,我试图将其视为日期。

事实证明问题是,当我从声明为NSMutable数组的数组中获取值时,生成它的函数被设置为输出NSArray。这是一个黄色警告但不是红色错误。当我将函数的输出更改为NSMutableArray时,日期的类型问题就消失了,我可以自由地将其视为字符串。显然,由于它是作为NSArray输出的,因此在改变它时存在一些困难。所以这是一个罕见但有趣的案例。