首页 > 解决方案 > 是否可以让我的班级遵守这个似乎需要结构的协议?

问题描述

我正在使用MessageKit,它要求您具有采用协议的模型对象MessageType。大多数示例涉及遵循协议的结构,但不幸的是,我使用第三方 API 库与站点的 API 进行交互,并且它们将所有模型作为类(在 Objective-C 中)。

所以当我尝试采用协议时,extension ServerMessage: MessageType我得到了错误

非协议类型的继承

我怎样才能使它与我的 Objective-C 类一起工作?

标签: iosobjective-cswiftcocoa-touchmessagekit

解决方案


任何适用于 a 的协议struct都必须适用于 a class。限制是相反的。没有代码片段很难提供答案,但我不明白为什么它不应该工作。

@objc class ServerMessage: NSObject {

}

protocol MessageType {
    var sender: Any { get }
}

extension ServerMessage: MessageType {
    var sender: Any { return () }
}

此虚拟代码不提供任何错误。也许你在某个地方有错字?


推荐阅读