如果不将每个.m文件更改为.mm,是否有发言权?
行。我正在努力实现答案,但遇到了麻烦。看看下面的Objective C ++ .h和.mm
Objective-C ++ - IDCaptureTemplateCommand.h:
#include "Template.h"
@interface IDCaptureTemplateCommand : NSObject
@property (nonatomic, strong) IDCaptureTemplateCommand *IDCaptureTemplateCommand;
@end
Objective-C ++ - IDCaptureTemplateCommand.mm:
#include "IDCaptureTemplateCommand.h"
@implementation IDCaptureTemplateCommand
- (id)init
{
self = [super init];
if (self) {
self.captureTemplateCommand = [[IDCaptureTemplateCommand alloc] init];
}
return self;
}
@end
Objective-C - IDCameraViewController.h
#import <UIKit/UIKit.h>
#import "IDCaptureTemplateCommand.h"
@interface IDCameraViewController : UIViewController <UINavigationControllerDelegate>
@property (nonatomic) IDCaptureTemplateCommand *captureCommand; //ERROR - Unknown type name 'IDCaptureTemplateCommand'
@end
答案 0 :(得分:3)
你可以这样做,就像你可以使用C或C ++中的C ++一样。您需要能够使用纯Objective-C声明接口,然后可以使用Objective-C ++编写实现。
如果您的头文件使用C ++,例如你的类有一个std::string
实例变量,然后为了使功能可以从Objective-C访问,你必须编写一个包装器或者在接口上隐藏C ++,这样你的Objective-C文件就不需要了任何C ++声明。