错误:无法推断通用参数“T”

时间:2017-02-26 21:01:57

标签: swift generics swift3

我有一个名为CellModel的基类,如此

public class CellModel{
   public init<T>(cell: T.Type, selectionHandler: SelectionHandler) where T: Cell, T: CellType
   {
      //anything here
   }
}

和一个名为CustomCellModel的类

public class CustomCellModel: CellModel{
    init(title: String, selectionHandler: SelectionHandler) {

    self.title = title
    super.init(cell: CustomCell.self, selectionHandler: selectionHandler)
    }
}

CustomCell就像这样

public class CustomCell: CellType, Cell {

}

super.init CustomCellModel方法中调用init的行中,我收到编译时错误

Generic parameter 'T' could not be inferred

我不知道这有什么不妥。

更新

借助@Hamish,我可以通过将@escaping添加到selectionHandler这样的参数来改变我的子类init方法来解决这个问题

public class CustomCellModel: CellModel{
    init(title: String, selectionHandler: @escaping SelectionHandler) {

    self.title = title
    super.init(cell: CustomCell.self, selectionHandler: selectionHandler)
    }
}

0 个答案:

没有答案