IdentifierKit 0.1.0

IdentifierKit 0.1.0

Nick Fox 维护。



IdentifierKit

IdentifierKit 允许您轻松地将 StringInt 标识符替换为强类型标识符。

功能

  • 💪强类型标识符
  • 🐟完全兼容 Codeable

要求

  • iOS 8.0+
  • Xcode 9.2
  • Swift 4

安装

CocoaPods

pod 'IdentifierKit'

Carthage

github "NicholasFFox/IdentifierKit"

Swift 包管理器

  • 即将推出

用法

使用 IdentifierKit 将模型层中弱类型的 StringInt 标识符替换为强类型的标识对象。

步骤 1: 创建一个表示标识符的唯一类型 - 空枚举非常适合这个用途!

enum UserIdentifier: Identifier {}

步骤 2: 使用 typealias 提供语法糖,避免在各个地方都输入泛型语法。

typealias UserId = IntIdentifier<UserIdentifier>

步骤 3: 用你创建的新类型替换你的 Int(或 String)标识符。

struct User: Codable {
  let id: UserId
  let firstName: String
  let lastName: String
}

IdentifierKit 与 Codable 协议无缝协作,因此你不需要对你现有的 JSON 进行任何更改。

let json = """
{
  "id": 2,
  "firstName": "Tim",
  "lastName": "Cook"
}
""".data(using: .utf8)!

let user = try JSONDecoder().decode(User.self, from: json)

致谢

感谢 Daniel Steinberg 通过关于幻影类型的演讲启发了这个框架。

许可证

IdentifierKit 在 MIT 许可证下发布。有关详细信息,请参阅 LICENSE