How I can instantiate a Objective-c class into CPP class?
for example my CPP class:
class Foo{
public:
Foo();
private:
MyObjcClass* myObjcClass; //it does not work
}
how I can do this?
note I using .m for Objective-C and .cpp for C++.
Thanks a lot!
Either
id
. If you use id
, you should introduce the type in your definitions, eg:
// Foo.mm
Foo::~Foo() {
MyObjcClass * a = this->myObjcClass;
[a release];
}
In general, you should preserve the type ( MyObjcClass
) and avoid using id
, but declaring the variable as id
is compatible with C and C++, so you can use id
to avoid compiling everything that includes Foo.hpp as ObjC++.
There are two ways to do this. The sane way is to use Objective-C++. You can either do this with files that have a .mm
extension or you can change your build settings. The default is to compile based on the file extension, but you can force it use Objective-C++ on a .cpp
or .m
file.
The crazy way is to use the raw Objective-C interface in objc.h.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.