如何在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文件。