温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在C语言中调用Swift函数

发布时间:2021-03-10 15:44:37 来源:亿速云 阅读:230 作者:Leah 栏目:编程语言

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

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函数的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI