ios - 类协议扩展仅限于有限数量的类
问题描述
我有两个 UIViewControllers A 和 B,我想要一个实现 UITableViewDataSource 的扩展,它应该限制在两个 A 和 B 控制器以上。可能吗?
我收到以下代码的编译器错误消息:
错误消息:用于扩展非泛型类型“UIViewController”的尾随“where”子句
class A: UIViewController {}
class B: UIViewController {}
extension UIViewController: UITableViewDataSource where Self: A, Self: B { }
解决方案
它不像这样工作,您必须创建一个协议并将其应用于您的类
protocol YourProtocol { }
extension YourProtocol where Self: UIViewController {
}
extension A: YourProtocol {}
extension B: YourProtocol {}
在协议中,您可以编写所有代码,或者简单地代替协议,您可以创建一个类并将其子类化
推荐阅读
- python - Tkinter 错误:不能在内部使用几何管理器网格。已经有由包管理的奴隶
- reactjs - 从 FlatList 中删除项目时 UI 未正确更新
- c - MINIX 3 (v3.1.0) 中的参数中缺少类型信息
- bash - 如何在使用 EOF 在远程机器上执行 ssh 时调用其他函数内部的函数?
- c# - 我可以在 UWP 上运行一些 http 服务器吗?
- python - Django删除旧的个人资料图像导致save()方法中出现此错误“profile_img”属性没有与之关联的文件
- asp.net - 如何在 Visual Studio 中生成独立的 React 应用程序项目?
- python - 用python交换数字
- objective-c - 错误:程序中的“@”和其他带有 NSArray 的杂散
- c# - 处理 Charge.refund webhook 时,Stripe.Net 发票属性为 NULL