Objective C使用C ++ POSIX类的项目

我必须使用一些C ++ POSIX类的代码创build一个iOS程序。 我已经阅读了Apple开发人员中心的“使用Objective-C的C ++”手册。 他们描述了如何在.mm文件中混合C ++和Objective C代码。

我的问题是,有没有可能在正常的Objective C项目的.h / .m文件中使用C ++类?

或者是否有必要写在整个项目中.mm文件样式与自己的主?

您可以在项目中合并任何types的文件,例如.c.m.cpp.mm ,并且根据扩展名自动select编译器。 例如,您可以保留XCode模板附带的标准main.m文件,并添加新的.h.mm文件以使用Objective-C ++。

换句话说, 正常的Objective-C项目和Objective-C ++项目没有区别。 您只需要使用.mm扩展名为需要Objective-C ++的特定文件。 这可以在任何项目中使用。

您必须在生成菜单中强制编译您想要在其中使用C ++到Obj-C ++的Obj-C文件。 然后,您可以在Obj-C类中创build和使用C ++对象。

这取决于你想如何使用C ++。 在我的项目中,我通常只打几个电话来做一些繁重的工作。

我所做的是在.cpp文件中使用C ++,然后创build一些头文件中没有C ++的.mm文件。 这些.mm文件是C ++的obj-c包装器。 然后C ++被“包含”到原始的posix文件中,再加上一些给C ++类的文件,并调用你所需要的所有接口。 尽可能less的.mm文件是一件好事。

保持C ++的大部分代码,使debugging等更容易。

–Tom

在Xcode中selectProject directory,在Build Settings中点击“Compile Sources As”就是Objective-C ++ 。 不需要将.m的名称types更改为.mm。