是否可以从常规c函数中调用swift函数

时间:2015-06-18 13:12:01

标签: c swift function-call

我在网上搜索,我发现了许多关于在一些快速代码中调用常规C函数的信息。但我没有找到任何有关反向方式的信息。在常规C中调用快速函数。

使用Objective-C,我刚刚创建了一个C兼容的头文件,并使用了一个Objective-C体来完成这项工作。

有人知道我该怎么做,而不是调用一个快速的函数。

PS。使用的主要源代码是用普通的C编写的,而不是C ++或Objective-C。因为它还需要在自定义设备上运行。我想与swift交互的目的是为设备创建一个模拟器。

彼得。

1 个答案:

答案 0 :(得分:0)

在Swift 2中,您可以将C函数指针传递给Swift函数或非捕获闭包。

示例C:

static void (*myCallback)(void);
void setCallback(void (*cb)(void)) {
  myCallback = cb;
}

main() {
  if (myCallback) myCallback();
}

示例Swift 2:

setCallback { print("do it") }

SwiftyExpat是对此的演示。