微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在最新的Swift 3快照中使用C variadic函数?

其中一个例子是ioctl

错误:’ioctl’不可用:Variadic功能不可用

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

当它从C导入时,它似乎被正确标记为接受varargs.

是这样的吗?

为什么它会被明确标记为不可用? Swift 3.0不支持这个吗?

解决方法

解决这个问题的唯一方法是在C中创建一个不是可变参数的包装函数.但是,正在努力为Darwin中需要它的函数创建包装器,最近在 this commit年为ioctl添加了多个包装器.

要使用包装器,您需要拥有至少与6月22日快照一样新的swift版本.确保您使用的是该工具链.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐