首页 > 解决方案 > 无法使用可选的通用数组推断通用参数 T

问题描述

我的模型类中有一个方法,其签名如下:

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在我调用函数的行上给我编译器警告。

标签: arraysswiftgenerics

解决方案


您需要显式声明您正在设置的变量的类型或向 parse 方法添加另一个参数并传递所需的类型:

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

推荐阅读