前提
目前TRTC官网上提供的一些场景化demo(比如TUIMeeting
)是用的swift写的,下面以OC项目中集成TUIMeeting这个组件为例简单介绍下OC
调用swift
正文
1、集成TUIMeeting组件直接参考TRTC官网文档https://cloud.tencent.com/document/product/647/45681
2、添加swift 文件,只要是混编无论是在oc项目中添加swift文件,还是swift项目中添加oc文件,会提示添加一个桥文件 名字为XXX-Bridging-Header.h
3、Target-> Bulid Settings ->输入packa 设置Defines Module 为Yes
4、设置圆框内 为当前工程名
5、在你要调swift文件的oc类中导入“项目名-Swift.h”文件,command 鼠标点击看是否能进到文件中
6、进不去“项目名-Swift.h”文件就自己创建一个以”项目名-Swift.h”文件
7、回到第5步进到“项目名-Swift.h”文件,你很可能进到下面这个里面
8、删除本地自己创建的“项目名-Swift.h”文件,再重复第5步进来就能看的你需要的“项目名-Swift.h”文件了
然后就可以在OC类中导入“项目名-Swift.h”文件调swift文件了
最后
因为是以TUIMeeting为例,直接用pod集成的TUIMeeting组件中有些类如TRTCMeetingMainViewController、TRTCMeetingMemberViewController引用不到;跟到错误中看到有一个TUIMeeting-Swift.h文件,
TUIMeeting-Swift.h里面发现没有TRTCMeetingMainViewController、TRTCMeetingMemberViewController转成OC的部分
上面这种情况我了解到TUIMeeting组件设计的思路是尽可能少的对外暴露接口 所以只对外暴露了一个TRTCMeetingNewViewController 这个类,通过初始化这个类之后,用户不需要操心里面具体的实现业务的,所以没有对外暴露上面提到的TRTCMeetingMemberViewController和TRTCMeetingMainViewController,如果需要高度自定义的话,建议用户拿到源码后可以根据自身业务需求修改TRTCMeetingMemberViewController和TRTCMeetingMainViewController类。
现在文档已标清哪些是私有类https://cloud.tencent.com/document/product/647/45681