我可以这样定义两个typealias吗?
typealias MyViewControllerTypeOne = UIViewController
typealias MyViewControllerTypeTwo = UIViewController, MyGreatProtocol
我已经知道第二个语法不起作用。
但是如何获得我想要的结果呢?(我认为我在这里想要的很明显。)
我可以这样定义两个typealias吗?
typealias MyViewControllerTypeOne = UIViewController
typealias MyViewControllerTypeTwo = UIViewController, MyGreatProtocol
我已经知道第二个语法不起作用。
但是如何获得我想要的结果呢?(我认为我在这里想要的很明显。)
typealias MyViewControllerTypeTwo = UIViewController & MyGreatProtocol
你可以将它作为元组实现 -
typealias tupleAlias = (viewController :UIViewController,protocol: MyGreatProtocol)
编辑: 使用示例-
typealias PersonTuple = (name: String, address: String)
override func viewDidLoad() {
super.viewDidLoad()
let tupleInstance = getPerson(for: "Jack")
print(tupleInstance.address)//Prints India
}
func getPerson(for name: String) -> PersonTuple {
return (name, "India")
}