如何在XCode 4.2中一起使用c ++和objective-c
我在开发iphone应用程序时遇到了一些麻烦,要将c ++和objective-c结合在一起。 我有一个第三方库在应用程序中使用。 我有一个计划,使用c或c ++来包装库,然后使用objective-c来调用它。 在用c ++完成课程之后,我在使用objective-c时遇到了麻烦。 有没有示例代码? 谢谢。
在Objective-C头文件中。 我写
#import <UIKit/UIKit.h> #import "ZJTConstants.h" #include "TTSAdapter.h" class Adapter; @interface ZJTVBlogViewController : UIViewController { @private Adapter* adapter; } @end
并在mm文件中,我写道:
if (self) { adapter = Adapter::getInstance(); // Custom initialization }
它是写吗?
从Objective-C代码调用C ++代码涉及以.mm(而不是.m)结尾文件,以便使用Objective-C ++编译器。
这个编译器可以理解C ++和Objective-C。
换句话说,ObjC ++编译器可以让你直接将C ++代码放入Objective-C方法中,反之亦然。
看看Cocoa_With_Carbon_or_CPP的例子以及在Objective-C项目中使用C ++的策略(反之亦然)文章。
在XCode中有一个标志将所有文件编译为Objective-C ++。 我用它来编译巨大的C ++库到iOS程序。
如果你看“构build设置”,有一个地方写“编译源代码”。 在那里你可以selectObjective-C ++的下拉菜单。 在铿锵/海湾合作委员会的命令行,我认为这是“-x目标-C ++”。
只需重命名您的文件有扩展名.mm
而不是.m
。
要将C ++代码与Objective-C代码混合,您需要使用Objective-C ++编译器。 XCode默认使用Objective-C编译器编译.m
文件,使用Objective-C ++编译器编译.mm
文件。