2014-09-13 85 views
2

在.mm文件如何返回一个C++指针在目标c函数

#import "OCClass.h" 
#import "CPPClass.h" 

@interface OCClass() 
@property (nonatomic, readwrite) CPPClass* cppClass; 
@end 

@implementation OCClass 
-(void*)getObject 
{ 
    return cppClass; 
} 
@end 

GetObject方法是一个公共方法,它是在标题中定义的,我想返回与所述cppClass对象CPPClass *类型而不是void *。但是我不能在objective-c头文件中包含一个cpp头文件。我应该怎么做?

回答

2

你只需向前声明在Objective-C的C++类的.h文件:

// OCClass.h 

#import <Foundation/Foundation.h> 

class CPPClass; 

@interface OCClass : NSObject 

-(CPPClass*)getObject; 

@end 

这样,你不必包括C++的.h文件在您的Objective-C的.h文件,并且所有内容仍将编译并正常工作。 (请注意,您只能#import这个头文件为.mm文件)。此外,您的getObject方法要么是:这取决于你是否想调用的getter

-(CPPClass*)getObject 
{ 
    return self.cppClass; 
} 

-(CPPClass*)getObject 
{ 
    return _cppClass; 
} 

或不。