Универсальный параметр T не может быть выведен с помощью необязательного универсального массива - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть метод в моем классе Model, который имеет подпись ниже:

func parse<T: Codable>(data: Data) throws -> Array<T>?

Когда я вызываю метод в другом классе, Facade, я получаю

Общий параметр T не может быть выведен

Вызов функции, как показано ниже

if let data = data {
                do{
                    let parsedArray = try self.model.parse(data: data);
                }
                catch{
                    print(error)
                }

выдает мне предупреждение компилятора в строке, где я вызываю parseфункция.

1 Ответ

0 голосов
/ 26 сентября 2018

Вам необходимо явно объявить тип переменной, которую вы устанавливаете, или добавить другой параметр в метод разбора и передать нужный тип:

let parsedArray: [YourType] = try model.parse(data: data)
...