IdentifierKit 允许您轻松地将 String
和 Int
标识符替换为强类型标识符。
功能
-
💪 强类型标识符 -
🐟 完全兼容Codeable
要求
- iOS 8.0+
- Xcode 9.2
- Swift 4
安装
CocoaPods
pod 'IdentifierKit'
Carthage
github "NicholasFFox/IdentifierKit"
Swift 包管理器
- 即将推出
用法
使用 IdentifierKit 将模型层中弱类型的 String
和 Int
标识符替换为强类型的标识对象。
步骤 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。