我目前正在关注本教程here
Realm可以自动将JSON数据映射到对象。但是,它似乎与NSDate属性不太匹配。
我的JSON字符串如下所示:
{
...
"created_at":"2015-12-08T11:59:45.315539Z"
...
}
我对created_at
的定义:
dynamic var created_at = NSDate()
映射和创建在这里发生:
...
let data = response.result.value as! [[String: NSObject]]
try! realm.write{
for item in data{
realm.create(MyModel.self, value: item, update:true)
}
}
这是我得到的错误:
*** Terminating app due to uncaught exception 'RLMException', reason: 'Invalid value '2015-12-08T11:59:45.315539Z' for property 'created_at''
这是否意味着我需要为NSDate手动映射它?
答案 0 :(得分:1)
那是对的。您无法使用包含日期的String
并自动将其映射到Realm中的NSDate
媒体资源。
解决此问题的最简单方法是将JSON数据反序列化为可变字典,然后手动将String
属性替换为NSDate
值,该值来自{{1对象。完成后,您应该只需将字典传递给Realm即可在其中创建新的NSDateFormatter
。
之前在Realm GitHub问题中讨论过:https://github.com/realm/realm-cocoa/issues/605