我想创建一个Decoder
,可以从数据中反序列化某些类型。我希望它能够使用此init方法自动反序列化所有具有init?(data: Data)
初始化程序的类型。
protocol DataInitializable: Decodable {
init?(data: Data)
}
extension DataInitializable {
// ???
}
extension UIImage: DataInitializable {}
let decoder = DataDecoder()
let image = try? decoder.decode(UIImage.self, from: data)
我已经尝试了各种方法,但是我找不到实现这种解码器的正确方法。另外,我不确定如何在Decodable
扩展名中实现DataInitializable
协议,以便它可以在init(data:)
下使用。
我知道我可以为图像使用包装器类,或类似的东西,但我想改用这种解码器。