XCode 中 Swift / Objective-C / C / C++ 混合编程

Swift 是苹果于2014年 WWDC 发布的一种新的用于编写 iOS 和 OS X 应用的编程语言,可与 Objective-C / C / C++ 进行混合编程。编程


一. Objective-C 调用 C

Objective-C 是 C 的超集,因此 Objective-C 彻底兼容 C,能够直接在 Objective-C 代码中写 C 代码无需修改。swift

二. Objective-C 调用 C++

Xcode 须要源文件以 .mm 为扩展名,这样才能启动编译器的 Objective-C++ 扩展,在 .mm 文件内能够编写 C++ 代码也能够编写 Objective-C 代码,支持大部分的 C++ 的特性,几乎彻底兼容 GNU C/C++。bash

三. Swift 调用 Objective-C

1.添加桥接文件

添加一个新的头文件到工程中做为桥接文件,建议命名为 {project_name}-Bridging-Header.h,这里我命名为 SwiftMixedDemo-Bridging-Header.h,如图所示:编程语言

1.png

2.设置 Objective-C Bridging Header

选中工程名,切换到 Build Settings 选项卡,选中 All,在右上角的搜索栏中输入 bridging 找到 Objective-C Bridging Header 一项,并将其设为 {project_name}/{project_name}-Bridging-Header.h,这里我设为 SwiftMixedDemo/SwiftMixedDemo-Bridging-Header.h,如图所示:post

2.png

3.添加 Objective-C 文件

将须要引入的 Objective-C 文件添加到项目,而后将相应的头文件添加到桥接文件 SwiftMixedDemo-Bridging-Header.h 中:ui

3.png

接下来便可正常调用 Objective-C 文件中的代码。spa

4.Swift 调用 C/C++

而且 Swift 不能直接调用 C/C++,但能够经过调用 Objective-C 代码的方式间接调用 C/C++。code

四. Objective-C 调用 Swift

唔,只要在须要调用的地方引用以下头文件便可:cdn

#import "{project_name}-Swift.h"
复制代码

不过须要注意的是,Swift 4 的 @objc 推断默认是关闭的,须要暴露给 OC 的话,须要手动在类或属性或方法名前添加 @objc 标识。blog


PS:{project_name} 代指工程名。

以上。


若有任何知识产权、版权问题或理论错误,还请指正。 https://juejin.im/post/5a321373f265da432241371a 转载请注明原做者及以上信息。

相关文章
相关标签/搜索