Я пытался напечатать мой вывод API на консоли для целей отладки. У меня есть этот метод, который я планировал вызывать в обоих случаях, для ошибки и успеха.
private static func printDetail<T>(route: APIRouter, resultSuccess: T? = nil, resultError: Any? = nil) where T: Codable {
let isSuccess = resultSuccess != nil
isSuccess ? print("✅✅✅✅✅✅") : print("❌❌❌❌❌❌❌❌")
// FOR Debuging Purposes
print("----------------")
print("REQUEST")
print("----------------")
print("PATH : --> " + route.fullPath)
print("parameters : --> ")
print((route.parameters ?? "none"))
print("methods : --> ")
print((route.method.rawValue))
print("Headears : --> ")
print((route.allHeaders))
print("----------------")
print("Response")
print("----------------")
if isSuccess {
let json = try! getJson(model: resultSuccess!)
print(json)
} else {
print(resultError!)
}
print("----------------")
isSuccess ? print("✅✅✅✅✅✅") : print("❌❌❌❌❌❌❌❌")
}
Так что я назвал это для случая успеха, и он работал как я ожидал.
// For Simplicity assume value is any Generic
// let value: (T)
self.printDetail(route: route, resultSuccess: value)
Но в случае ошибки я не могу просто передать универсальный c ноль.
self.printDetail(route: route, resultError: jsonResult)
Я получаю эту ошибку
Generi c параметр 'T' не может быть выведено
Что довольно понятно, поэтому мой вопрос, есть ли что-нибудь, что можно сделать, чтобы использовать тот же метод, используя Generi c? Может Generi c быть необязательным и нулевым в этом сценарии? или единственный вариант, который у меня есть, - создать два разных метода для случаев ошибки и успеха.