2016-08-23 4 views
0

У меня есть метод object-c, который использует быстрый протокол в качестве типа параметра. Подпись выглядит + (void) my_ObjC_method: (id<my_Swift_protocol>) parameter_name;Сделать объективный метод C, который использует быстрый протокол в качестве параметра public accesable

я вообще знаю, как сделать быстрые протоколы доступными для Objective C. Я реализовал это следующим образом:

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

Моя проблема заключается в том, что я хочу сделать my_ObjC_method публично доступным. Обычно это делается путем простого добавления его в файл заголовка в части @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