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 を作成する必要がなくなりました。代わりに、この場合は を呼び出して型に注釈を付け、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 呼び出し規約を使用します。