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) -> Int

let bar = unsafeBitCast(foo, CFunction.self)

The Swift Programming Language@convention的Type

Attributes部分中的描述的相关位是:

c参数用于指示C函数引用。函数值不包含上下文,并且使用C调用约定。

以上是 Swift 2中的新@convention(c):如何使用? 的全部内容, 来源链接: utcz.com/qa/407554.html

回到顶部