2014-09-13 2 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 개체를 반환 할입니다 void 대신 CPPClass * 유형을 사용합니다. 그러나 objective-c 헤더에 cpp 헤더를 포함 할 수는 없습니다. 어떻게해야합니까?

답변

2

.H 파일 당신은 단지 앞으로 목표 - C에서 C++ 클래스를 선언 할 수

// OCClass.h 

#import <Foundation/Foundation.h> 

class CPPClass; 

@interface OCClass : NSObject 

-(CPPClass*)getObject; 

@end 

그런 식으로, 당신은 C++를 포함 할 필요가 없습니다 당신의 목표 - C .H에서 .H 파일 파일, 그리고 모든 것이 여전히 컴파일되고 올바르게 작동합니다. 또한, 귀하의 GetObject 메서드는해야 하나 (. 당신은 단지 #import이 헤더 a를 .mm 파일에 파일이 할 수 있습니다) :

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

또는

-(CPPClass*)getObject 
{ 
    return _cppClass; 
} 

당신이 게터를 호출할지 여부에 따라 아닙니다.