Swift 2中的新@convention(c):如何使用?
迁移到Swift 2后,出现了一个错误,指出我现在应该使用@convention(c)(T)->U。我已经尝试了排列,但到目前为止还没有运气。
func foo(context: AnyObject?, width: CGFloat) -> Int {}
let bar = unsafeBitCast(foo, CFunctionPointer<(UnsafeMutablePointer<Void>, Float) -> Int>.self)
回答:
您不再需要在Swift
2中创建CFunctionPointer。相反,您可以通过调用Convention(在这种情况下为)来注释您的类型c
,并直接使用它。
typealias CFunction = @convention(c) (UnsafeMutablePointer<Void>, Float) -> Intlet bar = unsafeBitCast(foo, CFunction.self)
The Swift Programming Language@convention
的Type
Attributes部分中的描述的相关位是:
c参数用于指示C函数引用。函数值不包含上下文,并且使用C调用约定。
以上是 Swift 2中的新@convention(c):如何使用? 的全部内容, 来源链接: utcz.com/qa/407554.html