1C++调用OC
C++文件以.cpp结尾,肯定写不了oc代码。编译器不认。
需要一个.h文件做中转,然后在oc中写函数实现。举例:
test1.cpp
#includecpp2oc-bridge-header.h
boolTest1::testFunc(inti)
{
testFuncOC(i);
}
cpp2oc-bridge-header.h
booltestFuncOC(inti);
test2.mm
#includecpp2oc-bridge-header.h
booltestFuncOC(inti)
{
[[NStingalloc]init];
}
2OC调用C++
非常简单,把混写OC和C++的代码文件名,改为mm结尾。
然后代码用C++写也可以,用OC写也可以。
总结:互相调用非常简单,本质来说还是同源,变量的访问都是点分,oc函数调用的写法有很独特,编译器都是clang,识别无障碍。
3数据类型的相互转化
constchar*转NSString
NSString*strPath=[[NSStringalloc]initWithCString:paszPathencoding:NSUTF8StringEncoding];
NSData*转constunsignedchar
constunsignedchar*rgba=CFDataGetBytePtr(data);