Generi c параметр 'T' не может быть выведен при передаче Codable структуры - PullRequest
0 голосов
/ 13 февраля 2020

Пожалуйста, сначала наберите код 1011 для лучшего понимания.

func getType<T: Decodable>(urlString: String, header: HTTPHeaders, completion: @escaping (T?) -> Void){

}

let networkManager = DataManager()

 networkManager.getType(urlString: kGetMyDayTaskDetails + strId, header: header) { (MyDayAndTaskDetails) in

}

Ошибка:

Generic parameter 'T' could not be inferred

Я пытаюсь пройти структура как параметр, использующий Generics для использования общего метода для вызова API. Но не понимаю, как правильно позвонить. Пожалуйста, руководство.

1 Ответ

1 голос
/ 13 февраля 2020

Учтите, что параметром в замыкании является экземпляр , а не тип. Например, как

networkManager.getType(urlString: kGetMyDayTaskDetails + strId, 
                          header: header) { details in

}

Чтобы указать тип generi c, укажите его, и в соответствии с подписью он должен быть необязательным

networkManager.getType(urlString: kGetMyDayTaskDetails + strId, 
                          header: header) { (details : MyDayAndTaskDetails?) in 

}
...