【问题标题】:Make a objective C method that uses a swift protocol as parameter public accesable使使用 swift 协议作为参数的目标 C 方法可公开访问
【发布时间】:2016-12-30 03:58:27
【问题描述】:

我有一个使用 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 协议并将其识别为有效类型。但是不能将自动生成的桥接头导入到其他头文件中。

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

【问题讨论】:

    标签: ios objective-c swift methods bridging-header


    【解决方案1】:

    也许您可以使用@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
    

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多