Реализация протокола ObjC в Swift с указателем на неполный тип в качестве возвращаемого значения - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь реализовать протокол HopperPlugin Objective-C из Hopper SDK в классе Swift.

Сбой компилятора с ошибкой "Type 'MyPlugin' cannot conform to protocol 'HopperPlugin' because it has requirements that cannot be satisfied".

Я импортировал все типы SDK в заголовке моста.Я использовал XCode «Refactor / Generate Missing Function Definitions» для генерации всех заглушек, но одна отсутствует, потому что Hopper API использует указатель на неполный тип для HopperUUID следующим образом:

@class HopperUUID;
…
@protocol HopperPlugin <NSObject>
…
- (HopperUUID *)pluginUUID;

I'mдогадываюсь здесь, но, похоже, именно поэтому я не могу соответствовать требованиям протокола HopperPlugin.Я сам не создаю экземпляр этого типа - мне нужно вызвать HopperUUID! HPHopperServices.uuid(String!), чтобы получить его, но этот метод также не определен (автозаполнение XCode показывает все другие функции HPHopperServices, но не эту).Документы Apple предполагают, что он может быть сопоставлен с OpaquePointer, но с этой подписью также не генерируется ни одной функции.

Как мне диагностировать, что происходит не так?Я использовал рефактор и автозаполнение XCode для реализации и определения функций, о которых знает Swift.Те, которые относятся к неполному типу HopperUUID, не определены.Есть ли более подробный вывод компилятора, который скрыт от меня?

Что мне нужно сделать, чтобы успешно реализовать этот протокол в Swift?

...