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

时间:2016-08-23 10:54:16

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

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

我通常知道如何使客观C可以访问快速协议。 我这样实现了它:

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

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

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

1 个答案:

答案 0 :(得分: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