是否可以让我的班级遵守似乎需要结构的协议?

时间:2019-01-11 22:42:22

标签: ios objective-c swift cocoa-touch messagekit

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

因此,当我尝试采用extension ServerMessage: MessageType的协议时,会收到错误消息

  

从非协议类型继承

如何使其与我的Objective-C类一起使用?

1 个答案:

答案 0 :(得分:1)

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

@objc class ServerMessage: NSObject {

}

protocol MessageType {
    var sender: Any { get }
}

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

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