Swift3.0中代理的使用方法
1.制定协议(不写NSObjectProtocol暂时不会报错,但是写属性是无法写weak)
protocol CustomDelegateName:NSObjectProtocol {
//设置协议方法
func customFunc()
}
//在swift中,制定协议需要遵守NSObjectProtocol协议,除了类可以遵守协议,结构体也可以遵守协议
//在OC中我们制定协议,通常继承自NSObject,可以这样理解,所有继承自NSObject的对象都可以实现协议方法(同样我们也可以指定哪些对象可以实现我们制定的协议方法)
2.用weak定义代理
weak var delegate:CustomDelegateName?
3.判断代理是否存在,让代理去执行方法
func buttonAction() {
//'?'代替了responsed
delegate?.customFunc()
}
二,在控制器界面
1.遵守协议
classViewController:UIViewController,CustomDelegateName{ //遵守协议
2.设置代理为self
customView?.delegate = self
3.实现协议方法
func customFunc() {
print(#function)
}
网友评论