约定接口
协议最常用的场景是,约定接口,作为接口的抽象而存在,不提供实现,在 iOS 中最常用的场景就是委托模式下的 delgate / dataSource,以及约定对象应该具备的特征或功能,比如:
- UITableViewDelegate/UITableViewDataSource,用于约定回调的对象具备的数据源或者特定事件发生后需要执行的回调
- NSCopying, NSCoding 等
- UITextField/ UITextView 都遵循的 UITextInput 协议,约定了文本输入的对象具备的功能和行为表现
- MapKit 中地图大头针数据源 MKAnoation 协议应该具备 title 和 coordinate 属性
- Casa 在 iOS应用架构谈 网络层设计方案 在描述网络层数据处理时数据转换器类应该具备的功能,以及网络服务 HTTPSerbvice 子类对应必须实现的方法等。
- 自定义一个 UIPickerView,传入一个数组,即可进行业务选项的选择,效果如下:
网友评论