C++与Objective-C类型转换

最近接手的项目是C++和OC混编的,核心业务调用的是C++静态库提供的接口。为了方便项目使用,专门用OC封装了C++的接口作为桥接层,并且定义了相应的宏来做类型转换。

//OC 转 C++

//NSString 转 string
#define STRING_FROM_OC_TO_CPP(cpp, oc) (cpp) = [(oc ? oc : @"") UTF8String]

//NSInteger 转 int
#define INTERGER_FROM_OC_TO_CPP(cpp, oc) (cpp) = (int)(oc)

//CGFloat 转 double
#define CGFLOAT_FROM_OC_TO_CPP(cpp, oc) (cpp) = (double)(oc)


// C++ 转 OC

//string 转 NSString
#define STRING_FROM_CPP_TO_OC(oc, cpp) (oc) = [NSString stringWithUTF8String:(cpp).c_str()]

//int 转 NSInteger
#define INTERGER_FROM_CPP_TO_OC(oc, cpp) (oc) = (NSInteger)(cpp)

//double 转 CGFloat
#define CGFLOAT_FROM_CPP_TO_OC(oc, cpp) (oc) = (CGFloat)(cpp)

你可能感兴趣的:(C++与Objective-C类型转换)