如何将 Objective-c 类实例化为 CPP 类?
例如我的 CPP 课程:
class Foo{
public:
Foo();
private:
MyObjcClass* myObjcClass; //it does not work
}
我怎么能这样做?
请注意,我将 .m 用于 Objective-C,将 .cpp 用于 C++。
非常感谢!
如何将 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
扩展名的文件执行此操作,也可以更改构建设置。默认是基于文件扩展名编译,但你可以强制它在一个.cpp
或.m
文件上使用Objective-C++。
疯狂的方法是在 objc.h 中使用原始的 Objective-C 接口。