【问题标题】:Is it possible to have my class adhere to this protocol that seems to require a struct?是否可以让我的班级遵守这个似乎需要结构的协议?
【发布时间】:2019-06-06 21:01:48
【问题描述】:
我正在使用MessageKit,它要求您拥有采用协议MessageType 的模型对象。大多数示例涉及遵循协议的结构,但不幸的是,我使用第三方 API 库与站点的 API 进行交互,并且它们将所有模型都作为类(在 Objective-C 中)。
所以当我尝试采用extension ServerMessage: MessageType 的协议时,我得到了错误
非协议类型的继承
如何使它与我的 Objective-C 类一起工作?
【问题讨论】:
标签:
ios
objective-c
swift
cocoa-touch
messagekit
【解决方案1】:
任何适用于struct 的协议都必须适用于class。限制是相反的。没有代码 sn-p 很难提供答案,但我不明白为什么它不应该工作。
@objc class ServerMessage: NSObject {
}
protocol MessageType {
var sender: Any { get }
}
extension ServerMessage: MessageType {
var sender: Any { return () }
}
此虚拟代码不提供任何错误。也许你在某个地方有错字?