c++与oc混编之c++中调用oc方法
项目中用到了C++与OC混编,正好有时间来总结一下.
基本思路: C++中是不能直接调用OC代码的,所以要通过一个中介--C,来让他们建立联系,从而实现在C++中调用OC代码.
1.新建C++文件
- Xcode会自动生成.hpp和.cpp的默认文件(由于Xcode不需要手动编译链接,因此写到.hpp和.cpp中没有差别,以下默认写到.hpp中)
新建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方法
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方法相关推荐
- Swift与OC混编过程中的配置
女主宣言 在使用Swift进行iOS开发的过程中,经常涉及到Swift与OC混编的情况,有时主工程是OC的需要另外编入Swift代码,而有时主工程是Swift的需要另外编入OC代码.这其中涉及到修改一 ...
- swift和OC混编
swift和OC混编
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- 如何在java中调用js方法
[java] view plain copy/* * 加载脚本引擎,并在java中调用js方法 */ public void test2() { ScriptEngineManager manager ...
- 多维柔性作业调用_摆脱困境:从预定作业中调用安全方法
多维柔性作业调用 假设我们已经实现了一个Spring支持的应用程序,并使用Spring Security的方法安全性表达式对其进行了保护 . 我们的下一个任务是使用安全方法实施计划作业. 更具体地说, ...
- 摆脱困境:从计划作业中调用安全方法
假设我们已经实现了一个Spring支持的应用程序,并使用Spring Security的方法安全性表达式对其进行了保护 . 我们的下一个任务是使用安全方法实施计划作业. 更具体地说,我们必须实现一个计 ...
- [js] js循环中调用异步的方法,如何确保执行结果的顺序是正确的?
[js] js循环中调用异步的方法,如何确保执行结果的顺序是正确的? An example:let searchApi = function(arg){return new Promise((reso ...
- vuex 在非组件中调用 mutations 方法
版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8265566 ...
- Java实现 for循环输出空心的菱形 在main方法中调用printHollowRhombus()方法完成10行的空心菱形输出,其中 printHollo
Java实现for循环输出空心的菱形 @author asus 在main方法中调用printHollowRhombus()方法完成10行的空心菱形输出,其中 printHollowRhombus() ...
最新文章
- 位运算符Java与详解_java位运算符详解
- SpringMVC 中整合JSON、XML视图一
- MongoDB同步到Oracle,MongoToOracleMongoDB数据库迁移工具
- Android之面试题总结加强版(一)
- 解决AttributeError: 'str' object has no attribute 'decode'报错问题
- 《天天数学》连载09:一月九日
- Vagrant搭建开发环境1--总体介绍
- kafka集群为什么需要三个节点_Kafka突然宕机了?稳住,莫慌!
- 时间序列分析python课程论文_python时间序列分析
- matlab 对数函数表示,matlab对数函数怎么表示
- SpringCloud原理分析
- 任正非:华为没有996更没有007,“狼性文化”其实是三个精神
- python利用datetime模块计算时间差
- 1 Openwrt无线中继设置并访问外网
- “全民创业”是新时代的上山下乡
- 软件测试工程师的工资有多高?
- VuePress构建一个文档管理网站
- 自动化测试 | Selenium自动化测试框架,实战遇到的坑都在这了,玩转自动化测试
- 毕业论文避免查重率过高技巧
- MATLBA基础图像处理算法之四叉树分割法