2016-08-23 6 views
0

パラメータ型としてswiftプロトコルを使用するobjective-cメソッドがあります。パラメーターのpublicとしてswiftプロトコルを使用する客観的なCメソッドを作成します。

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

私の問題は、私はmy_ObjC_methodがパブリックアクセスできるようにしたいということです。私は、一般的に、私はそれをこのように実装客観C. への迅速なプロトコルにアクセスできるようにする方法を知っている

+ (void) my_ObjC_method: (id<my_Swift_protocol>) parameter_name;のように署名が見えます。これは通常、単にそれを@interface部分のヘッダーファイルに追加することによって行われます。悲しいことに、これは、.hファイルが私の素早いプロトコルを知っていて、それを有効なタイプとして認識するように、.hファイルにブリッジヘッダーをインポートする必要があります。しかし、自動的に生成されたブリッジヘッダーを他のヘッダーファイルにインポートすることはできません。

この問題を解決するにはどうすればよいでしょうか?

答えて

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 
関連する問題