2017-04-17 45 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