ios中监听事件总共有几种方式?

1.代理

使用代理传递消息是为了在控制器和视图之间解藕,让视图能够被多个控制器复用,例如 UITableView

但是,如果视图仅仅只是为了封装代码,而从控制器中剥离出来的,并且能够确认该视图不会被其他控制器引用,则可以直接通过 addTarget 的方式为该视图中的按钮添加监听方法

这样做的代价是耦合度高,控制器和视图绑定在一起,但是会省略部分冗余代码

代理的使用:

swift 中代理的使用基本与 OC 相同

需要注意的是,定义协议时,需要继承自 NSObjectProtocol

代理属性需要使用 weak 防止出现循环引用

2.通知

3.block

4.KVO

5.addTarget

你可能感兴趣的:(ios中监听事件总共有几种方式?)