【问题标题】:Convert ISO 8601 strings to date in createOrUpdateInDefaultRealmWithObject在 createOrUpdateInDefaultRealmWithObject 中将 ISO 8601 字符串转换为日期
【发布时间】:2015-03-13 18:05:34
【问题描述】:

我有一个从 REST API 返回的 JSON 块,格式如下:

[
  { 
    id: 1,
    locations: [
      {
        arriveAt: "2015-03-14T16:05:16Z"
      },
      {
        arriveAt: null
    ]
  },
  ...
]

然后我的项目中有这样的代码:

let trips = json as [NSDictionary]
let realm = RLMRealm.defaultRealm()
realm.beginWriteTransaction()
for trip in trips {
  Trip.createOrUpdateInDefaultRealmWithObject(trip)
}
realm.commitWriteTransaction()

在我的 Location 类中,有一个 var dynamic var arriveAt: NSDate?。我还使用fromISO8601String 方法扩展了 NSDate,该方法初始化 NSDate,将 ISO 8601 字符串转换为日期。

当 Realm 尝试创建 Location 对象时,有没有办法通过NSDate.fromISO8601String 自动运行 JSON 中的字符串?

【问题讨论】:

    标签: ios json swift realm


    【解决方案1】:

    嗨,戴夫,Realm 中还没有内置任何东西可以为您做到这一点。您将需要使用 Realm-JSON 或 Mantle 等变压器。

    【讨论】:

    • 我最终手动解析 JSON 的每个块,然后在最后将它们拉到一起。
    • 这也有效:),很高兴听到!我们正在研究一种简单的解决方案,以使这更容易
    • 如果您可以在将数据从 API 处理到 Realm 时应用过滤器,那就太好了。
    • 你能详细说明你想看什么吗?
    • 我将它作为问题添加到 Realm-Cocoa GitHub 存储库中。 github.com/realm/realm-cocoa/issues/1641
    猜你喜欢
    • 2019-02-27
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    相关资源
    最近更新 更多