Любая помощь по правильному синтаксису в Swift для доступа к typedef void PaStream; из файла C?

Я скомпилировал и импортировал библиотеку dylib C под названием portaudio (веб-сайт PortAudio) в проект Xcode 6.1 Swift, все функции/типы доступны, за исключением одного, который

typedef недействительным PaStream;

У меня проблемы с пониманием того, как использовать это в Swift, в C я объявляю это так:

PaStream *audioStream = NULL;

Может ли кто-нибудь помочь с эквивалентом Swift, поскольку я получаю предупреждение о необъявленном типе/неразрешенном идентификаторе, похоже, что Swift не может соединить typedef void xyz; ?

Большое спасибо за любую помощь.


person GeoffCoope    schedule 11.01.2015    source источник
comment
Я не программист Swift, но вы можете посмотреть COpaquePointer.   -  person Potatoswatter    schedule 11.01.2015


Ответы (1)


Определение типа C

typedef void PaStream;

действительно не импортируется в Swift, потому что вы не можете определить переменную типа void. Даже в C вы бы определяли только переменные pointer типа PaStream *.

Поэтому вы можете добавить

typedef PaStream *PaStreamPtr;

в заголовочный файл моста, а затем использовать его как

var audioStream : PaStreamPtr = nil
person Martin R    schedule 11.01.2015