Предотвращение доступа файлов Swift к сгенерированному заголовку интерфейса Objective C - PullRequest
1 голос
/ 03 октября 2019

Можно ли явно объявить, что исходный файл Swift не включен в заголовок сгенерированного интерфейса Objective-C? В качестве примера, скажем, у меня есть этот класс Swift

class MyViewController: UIViewController {
}

В моем сгенерированном заголовке MyApp-Swift.h я вижу это

SWIFT_CLASS("_TtC4MyApp16MyViewController")
@interface MyViewController : UIViewController
- (nonnull instancetype)initWithNibName:(NSString * _Nullable)nibNameOrNil bundle:(NSBundle * _Nullable)nibBundleOrNil OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder OBJC_DESIGNATED_INITIALIZER;
@end

Однако я бы предпочел, чтобы этот класс не был представленв цель-C. Я работаю в более крупном приложении, и наш сгенерированный файл -Swift.h занимает более 8000 строк. Это приводит к тому, что инкрементные сборки становятся болезненными, когда что-то, что требует только перекомпиляции кода Swift, в итоге вызывает перекомпиляцию кода Objective-C также просто потому, что этот заголовочный файл изменился.

@nonobjc к сожалениюне работа. Я получаю ошибку '@nonobjc' attribute cannot be applied to this declaration.

...