2017-04-17 44 views
2

我尝试设置与typealias条件是这样的:动态typealias斯威夫特3

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

如果双方ButtonTableCellInputTableCell是类,所以我可以在以后使用dataType这样的:

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

我不知道这是否可能在斯威夫特

回答

2

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

protocol TableCell { 
    // put stuff here 
} 

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

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

谢谢@ daniel-t – danielavila