首页 > 代码库 > iOS-Swift协议中关联类型的使用

iOS-Swift协议中关联类型的使用

Associated Type :关联类型

有时候会遇到这样的需求,继承自某一协议的类中需要保证代理方法处理的参数类型保持一致,这就需要使用关联类型来做到这一点

协议声明:

protocol ATypeDelegate {

    associatedtype T

    func printContent( ct : T)

    func colum( ct : T)

}

协议使用:

class ATypeClass: ATypeDelegate {

    typealias T = Int

    func printContent(ct: Int) {

        print("Int",#function)

    }

    

    func colum(ct: Int) {

        print("Int",#function)

    }

}

 

ATypeClass 继承自ATypeDelegate,必须在ATypeClass类中定义 T 的具体类型才能使用

iOS-Swift协议中关联类型的使用