protocol LoadFromNIb {
}
extension LoadFromNIb where Self: UIView{
///扩展类方法,只要遵守 LoadFromNIb 协议,都可以使用
static func loadViewFromNib(name: String?) -> Self {
return Bundle.main.loadNibNamed(name ?? "\(self)", owner: nil, options: nil)?.last as! Self
}
}
extension LoadFromNIb where Self: UIView{
///扩展实例方法 必须遵守 LoadFromNIb 协议
func printSelf() {
print("\(self)")
}
}

