Я считаю, что мой код абсолютно завален опциональными параметрами и инструкциями guard / let.
Например, у меня есть объект, который заполняется в течение нескольких VC, поэтому переменные в объектеявляются дополнительными.Однако когда я использую весь запрос в функции, это приводит к нелепым вещам, подобным следующему:
func save(request: Request, completion: @escaping WebServiceResponse){
guard let description = request.description,
let totalAmount = request.totalAmount,
let reserveAmount = request.reserveAmount,
let holdingPeriod = request.holdingPeriod,
let sender = request.sender,
let receiver = request.receiver
else {
return
}
apiRequest(endpoint: apiEndpoint.Deal, path: "/save", body:
[
"description" : description,
"total": totalAmount,
"reserve": reserveAmount,
"period":holdingPeriod,
"from":sender,
"to":receiver
], completion: completion)
}
Я нахожу эти проблемы во всем коде всякий раз, когда использую дополнительные функции, особенно когда использую дополнительные вобъект класса.
Один ответ предложил добавить дополнительную сложность, чтобы проверить, был ли установлен метод ... что сделало бы мой код еще более нечитаемым.Есть ли способ пакетной развернуть класс?Или, может быть, использовать попытку / ловить?
Как я могу улучшить?