【发布时间】:2021-02-21 12:34:58
【问题描述】:
假设我有可解码的属性包装器:
@propertyWrapper
struct OptionalDecodable<Value: Decodable>: Decodable {
var wrappedValue: Value?
}
编译器会为以下内容合成 init
struct Model: Decodable {
@OptionalDecodable private(set) var string: String?
}
为了测试这是否可行,我只是尝试解码空 JSON(即“{}”)
但是,string 属性不被视为可选,即当没有 string 键时,我收到一个错误,即找不到键。
有解决办法吗?
【问题讨论】:
-
不清楚你在问什么。您可以在问题中添加您尝试解码的 JSON 吗?另外,为什么需要这个属性包装器?可选项已经由 Codable 处理
-
@NewDev 更新了问题,希望对您有所帮助。这个包装器的目的是在后台执行自定义解码。说,我希望从字符串和数字中正确解码字符串。这个想法适用于非可选数据类型。但是当谈到可选时,我就卡住了
标签: swift decodable property-wrapper