DynamicCodable 1.0

DynamicCodable 1.0

Le Tai 维护。



  • Tai Le

CocoaPods CocoaPods Pod License Build Status

AnyCodable

此库用于简化 [String: Any] 和 [Any] 的编码和解码

要求

  • iOS 8.0 或更高版本
  • Xcode 10.0 或更高版本

安装

您可以使用 AnyCodable 来使用您的项目

  • 使用 CocoaPods

CocoaPods 安装

pod 'AnyCodable', '1.0'

构建项目

此时,您的工作区应该可以无错误地构建。如果遇到问题,请提交 Issue,社区可以帮您解决问题。

如何使用

import AnyCodable

struct MockCodableObject: Codable {
    var dict: [String: Any]
    var array: [Any]
    var optionalDict: [String: Any]?
    var optionalArray: [Any]?

    enum CodingKeys: String, CodingKey {
        case dict
        case array
        case optionalDict
        case optionalArray
    }

    init(from decoder: Decoder) throws {
        let values = try decoder.container(keyedBy: CodingKeys.self)
        dict = try values.decode([String: Any].self, forKey: .dict)
        array = try values.decode([Any].self, forKey: .array)
        optionalDict = try values.decodeIfPresent([String: Any].self, forKey: .optionalDict)
        optionalArray = try values.decodeIfPresent([Any].self, forKey: .optionalArray)
    }

    func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encode(dict, forKey: .dict)
        try container.encode(array, forKey: .array)
        try container.encodeIfPresent(optionalDict, forKey: .optionalDict)
        try container.encodeIfPresent(optionalArray, forKey: .optionalArray)
    }
}

作者

通讯

  • 如果你发现了错误,请打开一个问题。
  • 如果你有特性请求,请打开一个问题。
  • 如果你想贡献力量,请提交一个pull request。

许可证

所有源代码均根据MIT许可证授权。