2016-06-24 12 views
5

Ein Beispiel hierfür ist ioctlGibt es eine Möglichkeit, C variadic Funktionen mit dem neuesten Swift 3 Snapshot zu verwenden?

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 

Wenn es von C eingeführt wurde, ist es richtig markiert als Annahme varargs zu sein scheint.

Ist das der Fall?

Warum würde es explizit nicht verfügbar markiert werden? Unterstützt Swift 3.0 keine Unterstützung dafür?

Antwort

2

Der einzige Weg, um dies zu umgehen, ist eine Wrapper-Funktion in C, die nicht variadic ist. Es wird jedoch versucht, Wrapper für die Funktionen in Darwin zu erstellen, die sie benötigen, und kürzlich wurden mehrere für ioctl durch this commit hinzugefügt.

Um den Wrapper verwenden zu können, benötigen Sie eine schnelle Version, die mindestens so neu ist wie der Snapshot vom 22. Juni. Stellen Sie sicher, dass Sie diese Toolchain verwenden.