Могу ли я выставить значения параметров Swift по умолчанию для Objective-C?

Скажем, у меня есть некоторый класс Swift с методами, которые я хотел бы показать Objective-C:

@objc(Worker) class Worker : NSObject {
    func performWork(label: String = "Regular Work") {
        // Perform work
    }
}

Я могу назвать это двумя способами:

Worker().performWork()
Worker().performWork("Swift Development")

Однако при вызове из Objective-C я не получаю версию этого метода по умолчанию - ядолжен поставьте этикетку:

[[[Worker alloc] init] performWork:@"Obj-C Development"];

Смотрите определение из моегоAppName-Swift.h заголовок ниже:

SWIFT_CLASS_NAMED("Worker")
@interface Worker : NSObject
- (void)performWork:(NSString * __nonnull)label;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end

я мог быожидать чтобы увидеть метод с этой подписью:

- (void)performWork;

Я понимаю, что ObjC не поддерживает значения параметров по умолчанию, но я предполагал, что значения Swift по умолчанию просто генерируют дополнительные функции Swift с тривиальными реализациями, вызывающими «реальную» функцию (то есть они синтаксически скрывают сахартипичная реализация мы будем использовать в Obj-C).

Есть ли способ выставить это значение по умолчанию для Objective-C? Если нет, может кто-нибудь указать мне какую-либо документацию о том, почему это не доступно?

Ответы на вопрос(1)

Ваш ответ на вопрос