【问题标题】: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 () }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 2022-08-21
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多