Objective-C实例进入C 类



我如何将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。

最新更新