怎么在C语言中调用Swift函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

我们提供的服务有:成都网站设计、成都网站建设、外贸网站建设、微信公众号开发、网站优化、网站认证、汾阳ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的汾阳网站制作公司
extern void (^ __nonnull SwiftFunc)(void); extern void CFuncTest(void);
这里声明的全局指向void(^)(void)类型的Block的引用对象。
然后我们再看test.c源文件:
void (^SwiftFunc)(void) = NULL;
void CFuncTest(void)
{
SwiftFunc();
}我们定义SwiftFunc全局对象,将它初始化为空。
然后在ViewController.swift中编辑以下内容:
// 这里是对SwiftFunc的实现
private func swiftFuncImpl() {
print("This is a Swift function!");
}
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 这里对定义在test.c中的SwiftFunc进行初始化
SwiftFunc = swiftFuncImpl
// 这里用dispatch_async来测试SwiftFunc是否一直被hold着
dispatch_async(dispatch_get_main_queue()) {
CFuncTest()
}
}
}当调用了test.c中定义的CFuncTest函数之后,该函数里将直接调用SwiftFunc这一Block引用对象,从而达到了在C语言中调用了Swift中函数的目的。
看完上述内容,你们掌握怎么在C语言中调用Swift函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!