首页 文章

制作一个使用swift协议作为参数public accesable的客观C方法

提问于
浏览
0

我有一个使用swift协议作为参数类型的objective-c方法 . 签名看起来像 + (void) my_ObjC_method: (id<my_Swift_protocol>) parameter_name;

我一般都知道如何使客观C可以访问swift协议 . 我这样实现:

@objC protocol my_Swift_protocol : class {
    //...methods go here
}

我的问题是我想公开 my_ObjC_method . 这通常只需将其添加到 @interface 部分的头文件中即可 . 遗憾的是,这需要将桥接头导入.h文件,以便.h文件知道我的swift协议并将其识别为有效类型 . 但是您无法将自动生成的桥接头导入其他头文件 .

什么是解决或解决这个问题的好方法?

1 回答

  • 2

    也许您可以使用 @protocol 指令作为前向声明 .

    MyClass.h:

    #import <Foundation/Foundation.h>
    
    @protocol my_Swift_protocol;
    
    @interface MyClass : NSObject
    + (void) my_ObjC_method: (id<my_Swift_protocol>) parameter_name;
    
    @end
    

相关问题