Возможно ли, чтобы мой класс придерживался этого протокола, который, кажется, требует структуры? - PullRequest
0 голосов
/ 12 января 2019

Я использую MessageKit , и для этого требуется, чтобы у вас были объекты модели, которые принимают протокол MessageType. В большинстве примеров используются структуры, следующие протоколу, но, к сожалению, я использую стороннюю библиотеку API для взаимодействия с API сайта, и у них все модели представлены в виде классов (в Objective-C).

Поэтому, когда я пытаюсь принять протокол с extension ServerMessage: MessageType, я получаю ошибку

Наследование от типа без протокола

Как я могу заставить его работать с моим классом Objective-C?

1 Ответ

0 голосов
/ 12 января 2019

Любой протокол, который работает с struct, обязательно должен работать с class. Ограничение наоборот. Трудно дать ответ без фрагмента кода, но я не понимаю, почему он не должен работать.

@objc class ServerMessage: NSObject {

}

protocol MessageType {
    var sender: Any { get }
}

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

Этот фиктивный код не содержит ошибок. Может быть, у вас была опечатка где-то?

...