Swift 与 Objective-C混编

最近在慢慢尝试使用Swift,怎么说呢,就是碰到各种各样的问题。一个个解决吧。

Swift 和 Objective-C 代码的混编

 创建一个主要用Swift编写的项目工程

这个应该不需要多说

在Swift工程添加OC的文件

 在Swift工程中新建一个OC的文件的时候,会有弹框提示。会在项目中添加一个bridging header的文件,默认名字

ProductModuleName-Bridging-Header.h 也可以修改它的名字。

Swift 与 Objective-C混编_第1张图片

设置Target

在添加完上面的header文件之后,还要在target中在Swift Compiler 和 Packaging中分别设置一下,告诉它你已经添加了这个东西

默认系统已经添加了,如果没有,请手动添加。

注意!!!:Bridging Header 的文件地址,如果改变XXX_Header.h的文件地址,请一定要更新到Swift Complier设置中。


使用ProductModuleName-Bridging-Header.h

所以跟OC一起生成的这个文件干嘛用呢?在 Header.h 中加入OC的头文件,Swift 中使用 OC 的代码或者库,只需要在这个文件中 import相应代码或者库的头文件即可。


ProductModuleName-Swift.h

ProductModuleName-Swift.h又是什么呢?

官方文档:

Swift 与 Objective-C混编_第2张图片

当OC文件想要调用Swift类的时候,相应的就要用到这个ProductModuleName-Swift.h这个文件。ProductModuleName-Swift.h和ProductModuleName-Bridging-Header.h 不同,ProductModuleName-Swift.h 文件不会出现在项目中,而是由 Xcode 自动生成。OC 中使用 Swift 代码,在使用的文件中#import XXX-Swift.h


Swift与C++ 的混编

因为Swift与C++混编比较麻烦,因为OC与C++的混编比较容易在OC的.mm后缀名即可,所以采用曲线救国的方式。通过OC与C++的混编,在OC的类中定义相应的接口供Swift调用。

你可能感兴趣的:(Swift 与 Objective-C混编)