全解OC/Swift项目桥接文件(坑点解决)

无论你在OC项目还是Swift 项目中, 都遵从两个准则:

>在OC文件里只能写OC代码

>在Swift文件里只能写Swift代码

虽然不同语言文件, 但却能互相调用, 不过需要进行一下桥接, 就是需要通过下面的2个文件

1.(ProjectName-Bridging-Header.h)

Swift文件要调用OC代码的时候 你会发现你无法引用OC.h文件, 所以就要用到这个文件, 对OC文件进行桥接.

有两个生成桥接文件的方法,

1.1.通过在Swift/OC项目中直接创建OC文件/Swift文件, 首次Xcode会自动帮你创建, 按照提示操作即可.

图1

1.2.自己创建头文件, 文件名字为任意.h,Building Settings > Swift Compiler-General ,将 Objective-C Bridging Header 设置为此文件的路径, 一般为/任意.h,把一些OC.h文件在这里引用进去, 然后你就可以在Swift文件里操作OC代码

如下图:

图2
图3

总结: 无论你在OC项目中, 还是Swift项目中都有图3所示,Objective-C Bridging Header顾名思义, 在头文件导入OC头文件以供Swift调用

2.(ProjectName-Swift.h)

无论你在OC项目中, 还是Swift项目,OC调用Swift代码需要在OC文件里引用这个文件, 你会发现你的项目中并没有这个文件, 因为这个文件是个隐藏文件, 在项目Build的时候自动生成所有Swift文件对应的头文件声明, 集中写在了该文件中, 在OC文件中直接导入该头文件即可使用


一般的路径如下

/Users/ns/Library/Developer/Xcode/DerivedData/ProjectName-geqrwwqpiybkuddpogphythauoyo/Build/Intermediates.noindex/ProjectName.build/Debug-iphonesimulator/SwiftApp.build/DerivedSources/ProjectName-Swift.h

注意: 若是项目名字有特殊符号, 比如项目名为mpush-client-ios(OC), Xcode会自动替换”-", “(" 和 “)”为”_”, 文件名称变为mpush_client_ios_OC_-Swift.h

图4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容