Как передать строку Swift в функцию переменного тока?
У меня серьезные проблемы с передачей строки из swift в функцию, написанную на c.
Я пытаюсь сделать это в моем быстром коде
var address = "192.168.1.2"
var port = 8888
initSocket(address, port)
Функция c выглядит так:
void initSocket(char *address, int port);
Я получаю сообщение об ошибке: Невозможно преобразовать выражения типа 'Void' в тип 'CMutablePointer'
Я не могу найти решение, которое работает.
1 ответ
Решение
Swift CStrings без проблем работают с константами C, поэтому используйте
void initSocket(const char *address, int port);
вместо char*
аргумент, и объявить свой address
переменная как CString:
var address: CString = "192.168.1.2";
В C объявите свой параметр следующим образом
void setLastName(const char* lastName){
}
затем в быстром, вы можете напрямую передать обычную быструю строку
setLastName("Montego");
ключ заключается в том, чтобы определить переменную со звездочкой сразу после символа в C, например: const char*