将Swift闭包转换为CFunctionPointer?

时间:2015-01-26 09:40:23

标签: c swift audio xcode6 closures

是否可以将Swift程序中的闭包传递给API,其中相应的参数已标记为CFunctionPointer

我发现有迹象表明(例如here)这对于Xcode 6的测试版本(现已过时)是不可能的。

  

但是,您无法调用C函数指针或将闭包转换为   C函数指针类型。

现在有可能吗?如果可以的话?

例如,如何在Swift中定义一个闭包,在AudioServicesAddSystemSoundCompletion的调用中被接受为AudioServicesSystemSoundCompletionProc

This使用Swift和Objective-C来解决问题。一个人可以单独使用Swift课程吗?

1 个答案:

答案 0 :(得分:4)

不,单凭Swift还不行。

  

但是,您无法调用C函数指针或将闭包转换为   C函数指针类型。

仍然有效并且是最新的。在Swift中无法定义或转换为C函数的闭包。您只能引用已定义的C函数。