Realm create()无法将JSON字符串解析为NSDate?

时间:2016-01-13 04:42:59

标签: swift realm

我目前正在关注本教程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手动映射它?

1 个答案:

答案 0 :(得分:1)

那是对的。您无法使用包含日期的String并自动将其映射到Realm中的NSDate媒体资源。

解决此问题的最简单方法是将JSON数据反序列化为可变字典,然后手动将String属性替换为NSDate值,该值来自{{1对象。完成后,您应该只需将字典传递给Realm即可在其中创建新的NSDateFormatter

之前在Realm GitHub问题中讨论过:https://github.com/realm/realm-cocoa/issues/605