【发布时间】:2019-07-07 05:47:50
【问题描述】:
必要的功能
我正在修改系统以将当前未发送的 API 请求队列保存到 UserDefaults,以便在用户连接允许时重新发送。
由于一些补丁请求需要能够向 API 发送一个实际的 NULL 值(如果它是 nil 可选的,而不只是忽略该字段),这意味着我需要能够从默认值编码和解码 nil/NULL 值对于某些领域。
问题
我将编码面朝下,并且可以愉快地对请求进行编码以将 NULL 字段发送到服务器或将它们编码为默认值。但是,我的问题是,在解码已保存的未发送请求时,我找不到区分实际 Nil 值和字段不存在的方法。
我目前正在使用decodeIfPresent 解码我的字段(这些请求的所有字段都是可选的),如果该字段为空或如果该字段设置为 Nil/NULL,则返回 nil。显然,这不适用于可以显式设置为 Nil 的字段,因为我无法区分这两种情况。
问题
是否有任何我可以实现的解码方法来区分不存在的字段和实际设置为 nil 的字段?
【问题讨论】:
标签: swift encoding decoding codable