Posso expor os valores padrão dos parâmetros Swift para Objective-C?
Digamos que eu tenha alguma classe Swift com métodos que gostaria de expor ao Objective-C:
@objc(Worker) class Worker : NSObject {
func performWork(label: String = "Regular Work") {
// Perform work
}
}
Eu posso chamar isso de duas maneiras:
Worker().performWork()
Worker().performWork("Swift Development")
No entanto, quando chamado do Objective-C, não recebo a versão "padrão" deste método - eudevo forneça uma etiqueta:
[[[Worker alloc] init] performWork:@"Obj-C Development"];
Veja a definição do meuAppName-Swift.h
cabeçalho abaixo:
SWIFT_CLASS_NAMED("Worker")
@interface Worker : NSObject
- (void)performWork:(NSString * __nonnull)label;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
Eu gostariaEspero para ver um método com esta assinatura:
- (void)performWork;
Sei que o ObjC não suporta valores de parâmetro padrão, mas minha suposição era que os valores padrão do Swift simplesmente geram funções Swift adicionais com implementações triviais que chamam a função "real" (ou seja, são açúcar sintático que escondem oimplementação típica nós usamos no Obj-C).
Existe alguma maneira de expor esse valor padrão ao Objective-C? Caso contrário, alguém pode me indicar alguma documentação sobre por que isso não está disponível?