Swift - 可选协议和协议扩展

本文深入探讨Swift编程中的可选协议及其使用场景,同时介绍协议扩展的概念,阐述如何通过协议扩展来实现代码复用和类型增强。了解这些内容将有助于提升Swift编程的灵活性和效率。
摘要由CSDN通过智能技术生成
Objective-C中的protocol里存在@optional关键字,被这个关键字修饰的方法并非必须要被实 现。我们可以通过协议定义一系列方法,然后由实现协议的类选择性地实现其中几个方法。在 Cocoa API 中很多情况下协议方法都是可选的,这点和Swift中的protocol的所有方法都必须被 实现这一特性完全不同。

那些如果没有实现则协议就无法正常工作的方法一般是必须的,而相对地像作为事件通知或者对非关键属性进行配置的方法一般都是可选的。最好的例子我想应该是UITableViewDataSource和UITableViewDelegate。前者中有两个必要方法:
 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {}
 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {}
分别用来计算和准备 tableView 的高度以及提供每一个cell的样式,而其他的像是返回section个 数或者询问cell是否能被编辑的方法都有默认的行为,都是可选方法;后者 (UITableViewDele
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值