ios中监听事件总共有几种方式?
2018-02-05 本文已影响0人
骑着蜗牛去攻城
1.代理
使用代理传递消息是为了在控制器和视图之间解藕,让视图能够被多个控制器复用,例如 UITableView
但是,如果视图仅仅只是为了封装代码,而从控制器中剥离出来的,并且能够确认该视图不会被其他控制器引用,则可以直接通过 addTarget 的方式为该视图中的按钮添加监听方法
这样做的代价是耦合度高,控制器和视图绑定在一起,但是会省略部分冗余代码
代理的使用:
swift 中代理的使用基本与 OC 相同
需要注意的是,定义协议时,需要继承自 NSObjectProtocol
代理属性需要使用 weak 防止出现循环引用
2.通知
3.block
4.KVO
5.addTarget