在Swift中实现ObjC协议,并将不完整类型的指针作为返回值

时间:2018-09-30 03:55:22

标签: swift xcode hopper

我正在尝试通过Hopper SDK在Swift类中实现HopperPlugin Objective-C协议。

编译器失败,并显示"Type 'MyPlugin' cannot conform to protocol 'HopperPlugin' because it has requirements that cannot be satisfied"错误。

我将所有SDK类型导入了桥接头中。我使用XCode的“重构/生成缺少的函数定义”来生成所有存根,但是缺少了一个存根,因为Hopper API使用了指向HopperUUID的不完整类型的指针,如下所示:

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

我在这里猜测,但是似乎这就是为什么我不能满足HopperPlugin协议要求的原因。我自己不会创建这种类型的实例-我的意思是调用HopperUUID! HPHopperServices.uuid(String!)来获得一个实例,但此方法也未定义(XCode自动完成功能显示所有其他HPHopperServices函数,但不显示此函数)。苹果公司的docos建议将其映射到OpaquePointer,但该签名也不会生成任何函数。

如何诊断出问题所在?我利用了XCode的重构和自动完成功能来实现和识别Swift所知道的功能。与不完整的HopperUUID类型有关的那些未定义。还有更详细的编译器输出对我隐藏吗?

要在Swift中成功实现此协议,我需要做什么?

0 个答案:

没有答案