获取 KeyPath 的特定 CodingKey

Wii*_*ard 5 key-value-coding ios swift swift4 codable

考虑以下对象:

struct User: Codable {
    let id: Int
    let email: String
    let name: String
}
Run Code Online (Sandbox Code Playgroud)

是否有可能获得CodingKey给定的特定信息KeyPath

let key = \User.name.codingKey  // would be equal to string: "name"
Run Code Online (Sandbox Code Playgroud)

Ren*_*del -3

我不认为你可以将属性直接转换为字符串,但你可以使用反射实现类似的事情,但你必须创建结构的实例:

let user = User(id: 1, email: "sample@email.com", name: "just_name")
Mirror(reflecting: user).children.first?.label
Run Code Online (Sandbox Code Playgroud)