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()