typealias
使用typealias
为常用数据类型起一个别名
,一方面更容易通过别名理解该类型的用途,另一方面还可以减少日常开发的代码量。
// 网络请求常用回调闭包
typealias success = (_ data: String) -> Void
typealias fail = (_ error: String) -> Void
func fetchData(_ url: String, success: success, fail: fail) {
}
// 用&连接多个协议
typealias UITableViewCommonProtocol = UITableViewDelegate & UITableViewDataSource
class TestDelegate:UITableViewCommonProtocol{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
return cell
}
}
associatedType
associatedtypen
表示位置的数据类型,只是先定义一个名字,具体表示的类型要在最终使用的时候进行赋值
。在定义协议时,可以用associatedtype声明一个或多个类型作为协议定义的一部分。
protocol NetworkRequest {
associatedtype DataType
func didReceiveData(_ data: DataType)
}
class ViewModel: NetworkRequest {
typealias DataType = String
func didReceiveData(_ data: DataType) {
}
}
网友评论