前语:在我们写
Swift
的项目中,经常会用CocoaPods
引进一些Objective-C
的第三方库。但是Objective-C并不能直接导入。故这篇博客诞生了。
问题:这些第三方库的头文件并不能直接引证导入,如何处理?
计划:使用Objective-C桥接头文件(Objective-C Bridging Header)
- 第一步,请求一个.h文件。
注意命名规则为
TargetName-Bridging-Header
。
- 第二步,挑选 Targets -> Build Settings -> 挑选all并搜索header。
- 第三步,填写桥接头文件(Objective-C Bridging Header)的相对路径。
#ifndef Qi_MAMapDemo_Bridging_Header_h
#define Qi_MAMapDemo_Bridging_Header_h
#import <MAMapKit/MAMapKit.h>
#import <AMapFoundationKit/AMapFoundationKit.h>
#endif /* Qi_MAMapDemo_Bridging_Header_h */
- 完成,现在已经能够在项目中使用这些第三方库了。
Q:可能有同学会问这和
.pch
文件有什么区别? A:猜测Swift底层做了很多优化,会判别当前文件是否用到某些头文件,再定向导入。不必担心性能问题。与pch不同,Swift的头文件导入显得更加智能。