【发布时间】:2015-05-12 14:50:14
【问题描述】:
我是 iOS 和 CoreData 的新手,如果这太基础了,我很抱歉。
我试图弄清楚为什么 0000-01-01T00:00:00Z 的有效但奇怪的日期被转换为 nil。例如:
calculatedAttrMapping.valueTransformer(@"0000-01-01T00:00:00Z"); // nil
我认为这个日期应该可行。它符合 RFC 和 ISO 规范。
new Date("0000-01-01T00:00:00Z"); //Sat Jan 01 0 07:00:00 GMT+0700 (ICT)
(不是说 JS 是相关的,而是作为一个直觉检查......)
我尝试在调试器中单步执行它,但在我看到任何有用的东西之前它就进入了汇编。
这是来自.xcdatamodeld GUI 中的配置吗?
这是故意行为吗?限制?
【问题讨论】:
-
据我所知,ISO 格式日期与
NSDate和NSDateFormatter不兼容。实际上,我最终编写了自己的 ISO 日期解析器(即 NSDate 到 ISO,ISO 字符串到 NSDate)。我会将日期保存为字符串,或者如果您需要将其用作 NSDate,请编写解析器。我假设您使用 Swift? `println(Date("0000-01-01T00:00:00Z")) 打印什么? (对不起,我没有 Xcode)。 -
什么是
calculatedAttrMapping? -
@TomHarrington 它是通过迭代 CoreData 托管对象的实体类实例的
attributes来提取的。 stackoverflow.com/questions/15861892/… -
@SimplGy Core Data 的所有类都没有
valueTransformer方法或属性。这就是我问的原因,因为您的示例代码行试图做什么并不明显。
标签: ios objective-c swift core-data