繁体   English   中英

如何在XCode 4.2中一起使用c ++和Objective-c

[英]How to use c++ and objective-c together in XCode 4.2

在开发iphone应用程序时,我很难将c ++和Objective-c结合在一起。 我在应用程序中使用了第3方库。 我有一个计划,要使用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
}

是写吗?

在XCode中,有一个标志可以将所有文件编译为Objective-C ++。 我用它来将庞大的C ++库编译成iOS程序。

如果您查看“构建设置”,则有一个写为“将源编译为”的位置。 有一个下拉菜单,您可以在其中选择Objective-C ++。 在clang / gcc命令行中,我认为它是“ -x Objective-c ++”。

只需将文件重命名为扩展名.mm而不是.m

要将C ++代码与Objective-C代码混合使用,您将需要Objective-C ++编译器。 默认情况下,XCode使用Objective-C编译器编译.m文件,使用Objective-C ++一个编译.mm文件。

从Objective-C代码调用C ++代码涉及以.mm(而不是.m)结束文件,以便使用Objective-C ++编译器。

该编译器可以理解C ++和Objective-C。

换句话说,ObjC ++编译器使您可以将C ++代码直接放入Objective-C方法中,反之亦然。

看一下Cocoa_With_Carbon_or_CPP示例在Objective-C项目中使用C ++的策略(反之亦然)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM