Hydrant 2.0.0

Hydrant 2.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 BSD
发布上次发布2016年7月

Jeff Hui 维护。



Hydrant 2.0.0

文档

用于 Objective-C 的简单对象数据映射器。它旨在以高度灵活的方式很好地解决数据映射问题。

将 NSDictionaries 映射到 Value Objects 是一件无聊的工作!通常,大部分工作都在 -[initWithDictionary:] 方法中完成,这有几个缺点:

  • 它将反序列化过程紧密耦合到值对象中。这在反序列化同一个对象时可能会因为不一致的后端 API(您可能无法控制)而造成额外的混淆。
  • 您将对象图(假设您的 API 返回一个)的构建紧密耦合到特定的值对象上。
  • 您必须在反序列化时重复相同的、反转的代码。
  • 将各种基本值转换为各种原生 Objective-C 对象。
  • 您需要做大量繁琐的测试来覆盖各种边缘情况(您真的测试过吗?)

当然,然后您想要将它们从一种数据格式转换为另一种格式

  • RFC3339 字符串应转换为 NSDate
  • 字符串转换为 NSURL
  • 需要转换成数字的字符串
  • 一组固定的字符串作为 NS_ENUM 的值
  • 等等。

但是,您还需要处理错误情况。您不希望您的应用程序崩溃,所以

  • 检查您是否有 [NSNull null] 和/或 nil
  • 检查您是否有正确的类型(在转换前后)
  • 检查 JSON 对象中的键是否存在
  • 尝试将某些 JSON 格式转换为特定的对象(例如 - 将字符串转换为 NSDate)
  • 如果上述任何情况失败,请使用默认值
  • 执行部分恢复,例如在数组中的对象无效时排除数组中的对象。
  • 提供扩展到自定义解析要求的方法

这就是 Hydrant 力求解决的问题。

当然,如果您可以完全控制您接触到的 API,这个库就没什么大不了的。但是对于需要与您不直接控制的 API 交互的开发人员来说,Hydrant 可以帮助。

安装

喜欢 Cocoapods?添加这个

pod "Hydrant", '~>2.0.0'

或者如果您喜欢走在生活的前沿

pod "Hydrant", :git => "https://github.com/jeffh/Hydrant.git"

或者,git submodule add 将此项目添加到您的项目中。

添加 Hydrant 静态库作为您的依赖项或直接使用源代码。

用法

阅读 入门指南