Я пытаюсь написать оболочки Objective-c для существующих классов C ++.
У меня есть заголовок Objective-c в Click.h:
#import <Foundation/Fundation.h>
@class CClick; // forward declaration of C++ class
@interface Click : NSObject
@end
Тогда у меня есть реализация оболочки в Click.mm:
#import "CClick.h"// import of C++
#import "Click.h" // objc import
@interface Click ()
@property (nonatomic, readonly) CClick *clickInternal;
@end
@implementation Click
...
- (NSString *) uri
{
const char* uri = self.clickInternal->getUri(); // here I have error with incomplete definition of type 'CClick'
CClick - это мой класс C ++, у которого есть только некоторые свойства и метод получения для них.
Когда я пытаюсь построить свой проект, я получаю: неполное определение типа 'CClick'
Определение метода getUri в CClick.h на c ++:
#include <string>
#include <vector>
using namespace std;
namespace MyTest {
class CClick {
public:
string uri;
string id;
string getUri() {
return uri;
}
string getId() {
return id;
}
};
}