最近接手的項(xiàng)目是C++和OC混編的奠宜,核心業(yè)務(wù)調(diào)用的是C++靜態(tài)庫提供的接口菱鸥。為了方便項(xiàng)目使用盯串,專門用OC封裝了C++的接口作為橋接層,并且定義了相應(yīng)的宏來做類型轉(zhuǎn)換。
//OC 轉(zhuǎn) C++
//NSString 轉(zhuǎn) string
#define STRING_FROM_OC_TO_CPP(cpp, oc) (cpp) = [(oc ? oc : @"") UTF8String]
//NSInteger 轉(zhuǎn) int
#define INTERGER_FROM_OC_TO_CPP(cpp, oc) (cpp) = (int)(oc)
//CGFloat 轉(zhuǎn) double
#define CGFLOAT_FROM_OC_TO_CPP(cpp, oc) (cpp) = (double)(oc)
// C++ 轉(zhuǎn) OC
//string 轉(zhuǎn) NSString
#define STRING_FROM_CPP_TO_OC(oc, cpp) (oc) = [NSString stringWithUTF8String:(cpp).c_str()]
//int 轉(zhuǎn) NSInteger
#define INTERGER_FROM_CPP_TO_OC(oc, cpp) (oc) = (NSInteger)(cpp)
//double 轉(zhuǎn) CGFloat
#define CGFLOAT_FROM_CPP_TO_OC(oc, cpp) (oc) = (CGFloat)(cpp)