Необходимая функциональность
Я нахожусь в процессе модификации системы, чтобы сохранить очередь неотправленных в данный момент запросов API к UserDefaults, которые будут повторно отправлены, когда соединение пользователя позволяет.
Поскольку для некоторых запросов на исправление требуется возможность отправлять фактическое значение NULL в API (а не просто игнорировать поле, если оно является необязательным nil), это означает, что мне нужна возможность кодировать и декодировать значения nil / NULL из значений по умолчанию для определенных полей.
Проблема
У меня есть сторона кодирования, и я могу успешно кодировать запросы на отправку на сервер пустых полей или кодировать их по умолчанию.Однако моя проблема заключается в том, что когда дело доходит до декодирования сохраненных неотправленных запросов, я не могу найти способ провести различие между фактическим значением Nil и полем, просто отсутствующим там.
В настоящее время я использую decodeIfPresent для декодирования моих полей (все поля для этих запросов являются необязательными), которое возвращает nil, если поле пустое ИЛИ, если поле установлено в Nil / NULL.Очевидно, что это не работает для моих полей, которые могут быть явно установлены на ноль, так как я не могу провести различие между этими двумя случаями.
Вопрос
Существует ли какая-либо методология декодирования, которую ямог бы реализовать, что позволило бы провести различие между полем, которого там нет, и полем, фактически установленным в ноль?