博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C调用C++代码
阅读量:6251 次
发布时间:2019-06-22

本文共 1598 字,大约阅读时间需要 5 分钟。

我想在XCode上调用C++的代码,我这这里小结一下我的方法,Hello类只是为Objective-C调用C++做的一个封装

但是我感觉这样太不方便了,如果C++的代码很多的时候,这样做就很不好,期待有人给出好的解决方案,文章最后有这个Demo的源代码

参考文章:

写讲解一下这个Demo的内容

1,新建一个项目,我选的是“Single View Application”,名字顺便
2,新建一个Objective-C class文件,取名为Hello
3,在项目中会出现两个文件,Hello.h和Hello.m文件,将Hello.m文件的后缀名改为.mm,即Hello.mm
4,在Hello.h文件内添加C++类,Hello.h文件内容如下所示:

#import 
@interface Hello : NSObject{ class NewHello{ private:int greeting_text; public: NewHello(){ greeting_text=5; } void say_hello(){ printf("Greeting_Text = %d",greeting_text); } }; NewHello *hello;}-(void)sayHellooooo;@end

5,在Hello.mm文件中实现sayHellooooo方法,在这个方法中调用C++类

#import "Hello.h"@implementation Hello-(void)sayHellooooo{    hello = new NewHello();    hello->say_hello();}@end

6,最关键的地方,在需要调用C++类的地方,使用@class Hello,而不是#import 或者#include

#import 
//#include "Hello.h"@class Hello;@interface ViewController : UIViewController{}-(void)aaaa;@end

7,实现调用C++类中的方法

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];        NSLog(@"dddddddd");    Hello *aa = [[Hello alloc]init];    [aa sayHellooooo];    // Do any additional setup after loading the view, typically from a nib.}- (void)viewDidUnload{    [super viewDidUnload];    // Release any retained subviews of the main view.}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);}-(void)aaaa{}@end

8,源代码: 博客园规定文件名不能有加号

转载地址:http://jqusa.baihongyu.com/

你可能感兴趣的文章
opencv表面缺陷检测_工业产品表面缺陷检测方法
查看>>
kettle使用数据库来生成序列_时间序列数据库Influxdb的使用
查看>>
配置babel_关于 Babel 你必须知道的
查看>>
数据丢失与重复_消息队列重复消费和数据丢失问题(石衫面试突击学习笔记)...
查看>>
摄像头 火狐_为什么谷歌浏览器打不开电脑摄像头?
查看>>
两张图片合成一张_ps技巧:大光比照片后期曝光合成技法
查看>>
码条形码属性_条码生成器如何批量生成code 11码
查看>>
和lua的效率对比测试_不同编程语言能耗不同?看这27种语言对比!
查看>>
让某控件失去焦点_常用基本控件测试用例(一)
查看>>
天气模式_今年台风活跃期即将结束!下周天气将开启“大变脸”模式
查看>>
扫码枪关闭常亮模式_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...
查看>>
如何双击打开vivado工程_利用TCL重建vivado工程
查看>>
mysql的引双向链表_Mysql高手系列 - 第22篇:mysql索引原理详解(高手必备技能)
查看>>
mysql in 查询改成_MySQL not in嵌套查询改写成外连接方式
查看>>
mysql community安装_MySQL Community Server 5.7安装详细步骤
查看>>
python处理多行字符串_python多行字符串
查看>>
java冒泡排序_用java写个冒泡排序?
查看>>
linux 开发java_做开发环境的操作系统是 Linux 好还是 Windows 好?
查看>>
java正文提取_Java网页正文提取工具
查看>>
blocked java_使用jstack排查多线程死锁、阻塞
查看>>