2016-06-24 3 views
5

Одним из примеров этого является ioctlЕсть ли способ использовать C вариационные функции с последним снимком Swift 3?

error: 'ioctl' is unavailable: Variadic function is unavailable

Darwin.ioctl:2:13: note: 'ioctl' has been explicitly marked unavailable here 
public func ioctl(_: Int32, _: UInt, _ varargs: Swift.Any...) -> Int32 

Когда он был импортирован из C, по-видимому, чтобы быть надлежащим образом помечен как прием списки параметров.

В этом случае?

Зачем это явно не указано? Не поддерживает ли Swift 3.0 поддержку?

ответ

2

Единственный способ обойти это - создать функцию обертки в C, которая не является переменной. Тем не менее, предпринимаются усилия по созданию оберток для функций в Дарвине, которые в ней нуждаются, и недавно несколько добавили для ioctl по this commit.

Чтобы использовать обертку, вам необходимо иметь быструю версию, по крайней мере такую ​​же новую, как и моментальный снимок 22 июня. Убедитесь, что вы используете эту инструментальную цепочку.