OC里面的有三大类文件.m/.h(OC),.c/.h (C),.cpp/.hpp(C++)。
一、在OC中调用C或者C++
如果是.m文件,可以用OC和C的代码;
如果是.mm文件,可以用OC和C和C++的代码;
.m 和.mm 的区别是告诉编译器在编译时要加的一些参数。.mm也可以命名成.m,手动加编译参数。
二、在C++中调用OC
PIMPL (Private Implementation, 私有实现)
不要在C++中依赖ARC,最好自己手动管理。
遇到的问题:
1,尝试在同一个文件中调用oc、c、c++,ld: symbol(s) not found for architecture x86_64。
问题出现的原因和OC无关,在c++中引用c的头文件,需要用extern "C"{}把代码包括起来。详细原因见下:
http://stackoverflow.com/questions/9334650/linker-error-calling-c-function-from-objective-c
2,
参考
http://blog.csdn.net/horkychen/article/details/7935910
http://www.mamicode.com/info-detail-416411.html
原文:http://www.cnblogs.com/loying/p/5208821.html