Как передать строку 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*

источник: https://developer.apple.com/swift/blog/?id=6

Другие вопросы по тегам