有的时候,我们需要调用纯c++的方法,这个时候,我们必须再次封装一下。通过调用中间层对象的方法,来调用c++的方法。请看下图:
2.在test.h文件中定义方法
#ifndef __test__ #define __test__ class Test { public: void test(); static void testStatic(); }; #endif2.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.运行查看打印结果