从Objective C类调用Objective c++方法
Calling Objective C++ methods from Objective C Classes
是否可以从Objective- C类调用Objective- c++类和方法?
我们已经用Objective C代码写了一个项目。现在我们有一个c++类要集成,所以我想只改变一个类到Objective ++,与本地c++类交互,其他的将留在Objective C。这可能吗?有没有人能帮我找到更好的解决方案?
谢谢。
可以。只要类的接口是C-ish, Objective-C并不关心实现是Objective-C还是objective - c++。
是。这是有可能的。只是隐藏c++字段的扩展。例如:
//.h-file
@interface IntVector: NSObject
- (int) valueAtIndex:(NSUInteger) idx;
- (NSUInteger) size;
- (void) insertValue:(int) val atIndex:(NSUInteger) idx;
@end
//.mm-file
#include <vector>
using namespace std;
@interface IntVector()
{
vector<int> _vals;
}
@end
@implementation IntVector
- (int) valueAtIndex:(NSUInteger)idx
{
return _vals[idx];
}
- (NSUInteger) size
{
return _vals.size();
}
- (void) insertValue:(int) val atIndex:(NSUInteger) idx
{
_vals.indest(_vals.begin()+idx, val);
}
@end
是的,只要你限制你使用c++实现文件类型,你可以叫你的所有ObjC从常规目标C + +类有一些问题,如包装任何"宽松"的功能,你进口的外来的"C"(就像你会做连续混合c++和C),但如果你可以假设一个适度Xcode的最新版本(不需要支持32位MacOS),您可以很容易地用一个类做所有的扩展(又名"阶级延续")。
如果你想要一些关于这个话题的技巧和技巧,我是不久前NSBrief的一集的嘉宾,在那里我详细地谈论了使用objc++的几乎每个方面:http://nsbrief.com/113-uli-kusterer/
你也可以找到类似问题的答案:我可以在编译和链接时将c++的主函数和类与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