首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将C++对象添加到Objective-C类

将C++对象添加到Objective-C类
EN

Stack Overflow用户
提问于 2010-02-15 01:32:42
回答 3查看 18.2K关注 0票数 18

我正在尝试混合C++和Objective-C,我已经完成了大部分工作,但我希望在Objective-C和C++代码之间有一个单一的接口类。因此,我希望在ViewController接口中有一个持久的C++对象。

这会因为禁止声明没有类型的“myCppFile”而失败:

#import <UIKit/UIKit.h>
#import "GLView.h"
#import "myCppFile.h"

@interface GLViewController : UIViewController <GLViewDelegate>
{
    myCppFile cppobject;
}

@end

然而,这在.mm实现文件中工作得很好(它不工作,因为我希望cppobject在调用之间保持不变)。

#import "myCppFile.h"
@implementation GLViewController
- (void)drawView:(UIView *)theView
{
    myCppFile cppobject;
    cppobject.draw();
}
EN

回答 3

Stack Overflow用户

发布于 2010-02-15 02:45:36

确保所有包含GLViewController.h的文件都是Objective-C++源代码(*.mm)。

当您在视图控制器的头中包含C++代码时,所有导入此头的源代码都必须能够理解它,因此它们必须是Objective-C++

票数 3
EN

Stack Overflow用户

发布于 2013-08-11 23:52:27

您需要在.mm文件的接口块中声明C++对象。

在.mm中:

#include "SomeCPPclass.h"

@interface SomeDetailViewController () {
    SomeCPPclass*    _ipcamera;
}
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
- (void)blabla;
@end
票数 2
EN

Stack Overflow用户

发布于 2010-02-15 01:41:34

我认为您需要在您的项目设置中将以下标志设置为true

GCC_OBJC_CALL_CXX_CDTORS = YES

这应该允许您在Objective-C类中实例化C++对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2262011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档