c++与oc混编之c++中调用oc方法

项目中用到了C++与OC混编,正好有时间来总结一下.

  • 基本思路: C++中是不能直接调用OC代码的,所以要通过一个中介--C,来让他们建立联系,从而实现在C++中调用OC代码.

1.新建C++文件

  • Xcode会自动生成.hpp和.cpp的默认文件(由于Xcode不需要手动编译链接,因此写到.hpp和.cpp中没有差别,以下默认写到.hpp中)
  • c++与oc混编之c++中调用oc方法_第1张图片

新建hpp文件.png

2.在.hpp中实现如下代码(TestObject.hpp)

public:
void testFunction(int temp){
        c_testFunction(temp);
}
  • tips:如果是重载方法,需要在函数名后面加override ("如 void init() override ")

3. 创建.mm文件(LNTestObject.mm)

  • 在.mm中写C实现并调用OC方法

c++与oc混编之c++中调用oc方法_第2张图片

 

4.创建桥接文件并在.hpp中include(TestObject-C-Interface.h)

  • 目的是让.hpp中c++方法能找到对应c的方法

//声明实现的C方法
void c_testFunction(int temp);
  • 最后需要注意的:根据编译器特性,LNTestObject.mm 中实现的C方法不必再LNTestObject.h中再声明

实现以后的效果如下:
c++与oc混编之c++中调用oc方法_第3张图片

c++与oc混编之c++中调用oc方法_第4张图片

c++与oc混编之c++中调用oc方法_第5张图片

c++与oc混编之c++中调用oc方法_第6张图片

c++与oc混编之c++中调用oc方法_第7张图片

c++与oc混编之c++中调用oc方法_第8张图片 

c++与oc混编之c++中调用oc方法_第9张图片 

 

 

 

 

 

你可能感兴趣的:(新知识点,新技术,一天一读,c++,xcode,ios)