ios - 是否可以让我的班级遵守这个似乎需要结构的协议?
问题描述
我正在使用MessageKit,它要求您具有采用协议的模型对象MessageType
。大多数示例涉及遵循协议的结构,但不幸的是,我使用第三方 API 库与站点的 API 进行交互,并且它们将所有模型作为类(在 Objective-C 中)。
所以当我尝试采用协议时,extension ServerMessage: MessageType
我得到了错误
非协议类型的继承
我怎样才能使它与我的 Objective-C 类一起工作?
解决方案
任何适用于 a 的协议struct
都必须适用于 a class
。限制是相反的。没有代码片段很难提供答案,但我不明白为什么它不应该工作。
@objc class ServerMessage: NSObject {
}
protocol MessageType {
var sender: Any { get }
}
extension ServerMessage: MessageType {
var sender: Any { return () }
}
此虚拟代码不提供任何错误。也许你在某个地方有错字?
推荐阅读
- java - 在 Spring 属性无效时提供更好的日志记录
- r - 尝试将数据导入 R 时出现错误消息“没有名为 'tibble' 的包”
- database - 在 Centos 中首次安装后 Cassandra Reaper 启动问题
- html - Tailwindcss 下拉项目飞到屏幕边缘而不是下拉按钮下方
- javascript - 将谷歌表格中的一系列单元格以 PDF 格式下载到本地计算机和其他自动化脚本的脚本?
- vue.js - 在 Nuxt 中使用外部组件不起作用
- java - 如何在 Java 中传递泛型类型的 Class 变量?
- java - 使用“this”调用超类方法的子类
- javascript - 在 vue js 中使用 SweetAlert2 在删除项目之前进行模态确认
- mongodb - MongoDb 对日期字段进行排序,$match 和 $project 不起作用