Как я могу создать экземпляр класса Objective-C в классе CPP?
например мой класс CPP:
class Foo{
public:
Foo();
private:
MyObjcClass* myObjcClass; //it does not work
}
как я могу это сделать?
обратите внимание, я использовал .m для Objective-C и .cpp для C ++.
Большое спасибо!
Или
id
,Если вы используете id
Вы должны ввести тип в свои определения, например:
// Foo.mm
Foo::~Foo() {
MyObjcClass * a = this->myObjcClass;
[a release];
}
В общем, вы должны сохранить тип (MyObjcClass
) а также избежать с помощью id
, но объявив переменную как id
совместим с C и C ++, поэтому вы можете использовать id
чтобы избежать компиляции всего, что включает в себя Foo.hpp как ObjC ++.
Есть два способа сделать это. Разумным способом является использование Objective-C ++. Вы можете сделать это с файлами, которые имеют .mm
расширение или вы можете изменить настройки сборки. По умолчанию компиляция основана на расширении файла, но вы можете принудительно использовать Objective-C ++ на .cpp
или же .m
файл.
Сумасшедший способ — использовать необработанный интерфейс Objective-C в objc.h.