在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

时间:2024-03-28 14:49:27

更新:2018年5月25号

在swift中调用OC方法、C方法、C++方法,只需要添加一个桥接文件,然后在桥接文件中引入对应的头文件即可。

在OC中引入C方法、C++方法,直接引入头文件即可(同时记得把OC的.m文件后缀名改为.mm)不需要做任何操作。在OC中引入Swift方法,第一步需要创建桥接文件,然后第二步在需要使用Swift方法的类中#import "工程名-Swift.h"即可。

参考:详解swift和OC以及C语言的混编(不看后悔!)

一、介绍 

  最近在开发一个新项目,使用Swift语言来开发。用Swift开发时遇到一些问题不可避免,下面就来解决几个常遇到的问题。

 

二、问题和解决办法

  • 如何在Swift中手动桥接OC?

1.创建.h桥接文件

 在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

2.设置桥接文件路径,也即Objective-C Bridging Header的路径,设置完就可以导入自定义的OC类文件使用了

在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

        在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

  • 如何使用CocoaPods集成第三方库?

Swift语言使用cocoapods配置Podfile文件时要加上use_framework!。这句代码作用是把三方库打包成静态库供开发者使用。

在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

  • 如何导入使用CocoaPods集成的第三方库?这里我用MJRefresh举例

1、#import "MJRefresh.h"之后要设置一个User Header Search Paths,否则在需要用三方库的地方是调不出来的。

在target—>Build Setting里找到search Paths,双击User Header Search Paths后面的空白处,设置目录路径为${SRCROOT}。

${SRCROOT}后边选择recursive递归根目录下的所有文件。

在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

2、注意不要#import<MJRefresh/MJRefresh.h>这样导入。引用三方库的时候,需要在方法中声明为常量或者变量才能联想出这个库内的文件。

在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

 使用MJRefresh如下:

在Swift中桥接OC文件(自己创建的类文件和第三方库文件)

转载:https://www.cnblogs.com/XYQ-208910/p/6252744.html 不过原文有一个错误的地方