ios讨论群1群:135718460
有的时候,我们需要调用纯c++的方法,这个时候,我们必须再次封装一下。通过调用中间层对象的方法,来调用c++的方法。请看下图:
2.在test.h文件中定义方法
#ifndef __test__
#define __test__
class Test
{
public:
void test();
static void testStatic();
};
#endif
2.1.在test.cpp中实现定义的方法
#include "test.h"
#include <iostream>
void Test::test()
{
printf("Hellow world \n");
}
void Test::testStatic()
{
printf("Hellow world with Static");
}
3.在RootViewController.h文件中定义oc需要调用的方法
-(void)testFunc;
3.1在RootViewController.mm文件中实现上方法,并且和c++文件建立联系
#import "RootViewController.h"
#include "test.h"
static Test* pTest=NULL;
@implementation testObject
-(id)init
{
if (self=[super init]) {
if (!pTest) {
pTest=new Test();
}
}
return self;
}
-(void)testFunc
{
if (pTest) {
pTest->test(); //-> c++ 指针 调用 公有变量和方法
//. c++ 对象 调用 公有变量和方法
}
Test::testStatic();
}
- (void)dealloc {
if (pTest) {
delete pTest;
}
[super dealloc];
}
@end
4.在viewControler的viewdidLoad方法中实例化一个RootViewController对象并且调用在RootViewController.h声明的方法
testObject * ttt=[[testObject alloc] init];
[ttt testFunc];
5.运行查看打印结果