如何在XCode 4.2中同时使用c++和objective-c
How to use c++ and objective-c together in XCode 4.2
在开发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
}
是写的吗?
在XCode中,有一个将所有文件编译为Objective-C++的标志。我用它把巨大的C++库编译成iOS程序。
如果你看一下"构建设置",有一个地方写着"将源编译为"。那里有一个下拉菜单,您可以在其中选择Objective-C++。在clang/gcc命令行中,我认为它是"-xobjective-c++"。
只需将文件重命名为扩展名.mm
,而不是.m
。
要将C++代码与Objective-C代码混合,您需要Objective-C++编译器。XCode默认情况下使用Objective-C编译器编译.m
文件,使用Objective-C++编译.mm
文件。
从Objective-C代码调用C++代码需要以.m(而不是.m),以便使用Objective-C++编译器。
这个编译器可以理解C++和Objective-C。
换句话说,ObjC++编译器允许您将C++代码直接放入Objective-C方法,反之亦然。
看看Cocoa_With_Carbon_or_CPP示例和Objective-C项目中使用C++的策略(反之亦然)文章。
相关文章:
- 如何将数组从Objective-C发送到C++函数
- 在 Objective-C++ -> EXC_BAD_ACCESS Error 中使用"new"关键字
- Mac Snow Leopard 上的 Qt 5.3.2:ld:在架构x86_64 [clang、Objective-C
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- C++对象作为 Objective-C++ 属性
- 将.cpp文件中的数据传递给Objective c ViewController
- 为什么这个来自 Objective-C++ 的dynamic_cast在调试中成功但在发布时失败?
- Objective-C 如何使用向量对?
- 在 Objective-C 和 Swift 之间委托问题
- Objective-C C++ 包装器 类型错误的不完整定义
- EXC_BAD_ACCESS Xcode,来自我的 Objective-C++ 和 swift 桥接标头中的 C++ 包
- 在 Objective-C++ 中应用于__weak指针时,通过关键字推导类型"auto"规则是什么?
- 如何发送(和接收)从 Swift 到 Objective c++ 再到 c++,然后备份到 Swift 的超大型浮动数组
- 使用来自Objective C的OpenCV分解同源异构图
- 如何将这行代码从C++转换为Objective-C
- Firebase:混合使用C++和Objective-C SDK可以吗
- 如何使用Visual Studio C/C++编译器(cl.exe)来预处理我的objective-C代码
- 有没有办法将函数从 objective-c++ 传递到标准 c++
- 从Objective-C中的C 标头读取变量
- Objective-C 块中的泄漏C++ shared_ptr