我如何将Objective-C类实例化成CPP类?
例如我的CPP类:
class Foo{
public:
Foo();
private:
MyObjcClass* myObjcClass; //it does not work
}
我如何做到这一点?
注意i使用.m用于Objective-C和.cpp用于C 。
非常感谢!
- 编译为Objective-C
- 或将其声明为
id
。
如果使用id
,则应在定义中介绍类型,例如:
// Foo.mm
Foo::~Foo() {
MyObjcClass * a = this->myObjcClass;
[a release];
}
通常,您应该保留使用id
的类型(MyObjcClass
)和避免,但是将该变量声明为id
与C和C 兼容,因此您可以使用id
来避免编译所有内容foo.hpp为objc 。
有两种方法可以做到这一点。理智的方法是使用Objective-C 。您可以使用具有.mm
扩展名的文件执行此操作,也可以更改构建设置。默认值是根据文件扩展名进行编译,但是您可以强制使用.cpp
或.m
文件上使用Objective-C 。
疯狂的方法是使用OBJC.H。