我可以将现有的C ++库集成到iPhone应用程序中吗?
答案 0 :(得分:4)
虽然你不能在Objective-C中混合使用C ++类,但你可以将它与Objective-C ++混合使用,我相信iPhone也支持它。将C ++代码与iPhone应用程序集成应该不是问题,但如果您想保持安全,那么您应该将代码构建为库,然后从iPhone应用程序链接到它;这样你就不用担心混合Obj-C代码和C ++类了。
至于Apple的批准,没有人可以给你一个明确的答案,关于你的应用程序是否可以包含在商店中,因为Apple对整个过程非常关闭。但是,现在已经非常清楚,某些类型的应用程序无法实现这一目标。即:
实际上,最好只是谷歌搜索被禁止的应用程序的例子,以获得更好的感觉。但最重要的是,它不是 你的应用程序如何做某事,它是你的应用正在做什么会导致它被禁止。
答案 1 :(得分:3)
目标C ++已得到Apple的gcc的明确定义和支持。
但是你不能混合使用C ++和客观的C类,这使得它相当混乱。我不认为在野外有很多项目可以将C ++和Objective C混合在一起。
这在很大程度上取决于您的库,但如果(实际上)可行,我将C ++包装在C库中,使用extern“C”入口点获取所有实际功能,并从您的目标C代码中链接到您的库iphone app。
答案 2 :(得分:2)
我刚刚开始使用iPhone开发,但我已经能够成功使用一些现有的C ++库而无需任何更改。我带来了一些我已经编写的OpenGL类,它们工作得很好,因为iPhone上的gl库都是C而不是Obj-C。例如,我使用Obj-C将纹理加载到GLubyte数组中以获取资源,大小等,然后将这些值传递给我的C ++代码,该代码执行gl调用以创建纹理。这同样适用于加载几何体。
只需将.m文件更改为.mm,一切似乎都有效。目标C ++类可以有C ++类的成员(虽然我不认为其他方式适用,这可能是一个问题)。