动态类型Swift 3

时间:2017-04-17 19:13:56

标签: ios swift swift3

我正在尝试使用这样的条件设置typealias

typealias dataType = (x == y ? ButtonTableCell : InputTableCell)

ButtonTableCellInputTableCell都是类,所以稍后我可以像这样使用dataType

let cell = tableView.dequeueReusableCell(withIdentifier: "buttonCell", for: indexPath as IndexPath) as! dataType

我不知道Swift

中是否可行

1 个答案:

答案 0 :(得分:3)

这是不可能的。但是,您可以制定协议或泛型来接近它。

protocol TableCell { 
    // put stuff here
}

extension ButtonTableCell: TableCell { }
extension InputTableCell: TableCell { }

class MyClass<X: TableCell> {
    typealias dataType = X
}