Realm create() 无法将 JSON 字符串解析为 NSDate?
Posted
技术标签:
【中文标题】Realm create() 无法将 JSON 字符串解析为 NSDate?【英文标题】:Realm create() cannot parse JSON string to NSDate? 【发布时间】:2016-01-13 04:42:59 【问题描述】:我目前正在关注本教程here
Realm 似乎可以自动将 JSON 数据映射到对象。但是,它似乎不能很好地与 NSDate 属性配合使用。
我的 JSON 字符串如下所示:
...
"created_at":"2015-12-08T11:59:45.315539Z"
...
我对@987654323@的定义:
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】:没错。您不能将包含日期的 String
自动映射到 Realm 中的 NSDate
属性。
解决此问题的最简单方法是将 JSON 数据反序列化为可变字典,然后手动将特定的 String
属性替换为从 NSDateFormatter
对象生成的 NSDate
值。完成后,您应该能够简单地将字典传递给 Realm 以在其中创建新的 Object
。
这之前在 Realm GitHub 问题中讨论过:https://github.com/realm/realm-cocoa/issues/605
【讨论】:
以上是关于Realm create() 无法将 JSON 字符串解析为 NSDate?的主要内容,如果未能解决你的问题,请参考以下文章