Por que não posso passar uma função Swift String para C opcional que permite ponteiros NULL?

Eu tenho uma função C que lida com seqüências de caracteres C. A função realmente permite que as strings sejam ponteiros NULL. A declaração é a seguinte:

size_t embeddedSize ( const char *_Nullable string );

Não há problema em usar esta função como esta em C:

size_t s1 = embeddedSize("Test");
size_t s2 = embeddedSize(NULL); // s2 will be 0

Agora estou tentando usá-lo da Swift. O código a seguir funciona

let s1 = embeddedSize("Test")
let s2 = embeddedSize(nil) // s2 will be 0

Mas o que não funciona é passar uma string opcional para ele! Este código não será compilado:

let someString: String? = "Some String"
let s2 = embeddedSize(someString)

O compilador gera um erro sobre o opcional não ser desembrulhado e o Xcode me pergunta se eu esqueci de adicionar! ou?. No entanto, por que eu gostaria de desembrulhá-lo?NULL ounil são valores válidos a serem alimentados para a função. Veja acima, acabei de passarnil diretamente e compilou muito bem e retornou o resultado esperado. No meu código real, a string é alimentada por externa e é opcional, não posso forçar a desembrulhar, isso será interrompido se a string fornil. Então, como posso chamar essa função com uma sequência opcional?

questionAnswers(3)

yourAnswerToTheQuestion