userinfo-representable

userinfo-representable 帮助将 userInfo 转换为你的类型。

用法

通过附加 @UserInfoRepresentable 定义你的类型。
像这个例子一样,@UserInfoRepresentable 可以是嵌套的。

@UserInfoRepresentable
struct Foo {
    var number: Int
    @UserInfoKey("custom key") var text: String
    var bar: Bar
}

@UserInfoRepresentable
struct Bar {
    let value: String
}

然后,你可以像这样解析 userInfo

let userInfo: [AnyHashable: Any] = [
    "number": 123,
    "custom key": "text",
    "bar": [
        "value": "bar"
    ],
]
let foo = try Foo(userInfo: userInfo)

而且,你也可以将类型转换为 userInfo

let userInfo: [AnyHashable: Any] = foo.convertToUserInfo()