桥接标头如何在Xcode中工作?

时间:2019-01-31 06:06:15

标签: swift xcode language-binding

我很好奇Xcode实际如何与C库和Swift 4一起使用。

我通过创建桥接头添加了我的C库,之后,我可以毫不费力地使用C函数。 Swift是基于C语言构建的吗?

2 个答案:

答案 0 :(得分:1)

当您在Xcode中的C语言中添加库时,输入名称并选中“同时创建头文件”框,Xcode会询问您有关Objective-C桥接头文件的信息。只需创建它。该文件的名称很棘手,因为它还支持其他C系列语言,例如纯C或C ++,Objective-C和C加号。

并非完全Swift是基于C语言构建的,而是Objective。 C以及更早的Swift支持都不存在。 .h文件,它是一个标题,可以帮助我们桥接库并在运行于Swift的项目中使用它。

查看Apple的文档:- https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_objective-c_into_swift

答案 1 :(得分:1)

与Objective-C或C / C ++系列中的语言不同,Swift没有公共接口标头的概念,而是通过可访问性修饰符(private / {{1} } / internal /等)。

唯一的例外是应用程序的桥接头和库的伞头。编译器知道要在这些位置中查找可以导入到Swift中的声明(并非标头中的所有C内容都可以用于Swift)。

找到可用符号后,编译器将使它们可用于所有Swift文件,并生成必要的调用代码。