OC與C++ 混編的檔案互動

weixin_33890499發表於2017-02-23

用xcode 建立C++的檔案 後得到 一個.cpp檔案和.hpp檔案!
.hpp檔案 做c++ 類的申明 類的變數申明 類中的方法申明(當然也可以寫類的實現)
.cpp 檔案 做在.cpp 中申明的方法的實現部分

用Xcode 建立一個 oc的類 得到的是一個.h檔案 和 .m檔案
為了能讓 一個檔案中同時可以呼叫 OC的程式碼 和 c++的程式碼 需要將.m檔案的字尾 修改成 .mm

(.mm檔案中可以編寫 c++程式碼 oc程式碼 c程式碼)

1.想要 oc的函式 呼叫C++的程式碼的時候
xcode建立的oc類 將.m檔案修改成.mm檔案之後
.h檔案 用純oc的寫法
.mm檔案 寫oc的函式 函式的實現部分 呼叫C++的函式

2.想要C++的函式 呼叫oc的程式碼時候
xcode建立的oc類 將.m檔案修改成.mm檔案之後
.h檔案 用純c++的寫法 寫類的申明 屬性的申明 函式的申明
.mm檔案中寫c++函式的實現 在函式的實現部分 呼叫OC的函式

OC中的NSString 和C++ 中的string 之間的相互轉換

NSString 轉 string(c++)

NSString *str =  [OCClass sayGreeting:@"hello world!"];
 string str1 = [str UTF8String];

string(c++) 轉 NSString

std::string("hello world!");
    
   NSString *string = [NSString stringWithUTF8String:str.c_str()];

相關文章