Я создал Swift проект простой рамки IOS и добавил один Swift класса Logger
с одним методом заглушки log(_:)
Проверка «Разрешить только расширение приложения API» в рамках проекта IOS предоставляет внутренние классы и методы для потребителей
class Logger: NSObject {
func log(_ message:String) {
// ...
}
}
Класс Logger
и метод log
являются внутренними для каркаса, а построение обычно не предоставляет их ObjC
. Если я проверяю только «Разрешить API расширения приложения» только в общих настройках моей целевой среды, то сгенерированный MyFramework-Swift.h
теперь содержит как объявление класса, так и метода, что означает, что оба они видны для пользователей структуры, как если бы они были объявлены общедоступными :
SWIFT_CLASS("_TtC9Framework6Logger")
@interface Logger : NSObject
- (void)log:(NSString * _Nonnull)message;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
Может кто-нибудь объяснить, почему? Заранее спасибо!
Вы не должны использовать скриншоты для публикации фрагментов кода. – Losiowaty