Objective-C++中支持多少C++

rlb*_*ond 6 iphone cocoa boost objective-c objective-c++

我想制作一款iPhone应用,但我打算用C++制作这个框架.是否可以在Objective-C++中使用模板之类的东西.我想真的问题是,我可以使用提升吗?

gav*_*inb 13

是否可以在Objective-C++中使用模板之类的东西.

是的,但您需要注意如何在纯C++层和Objective-C++代码之间混合类型和接口.请记住图层之间的界限,您需要转换类型,例如std::stringto NSString等等.

例如,您可以使用纯C++实现核心游戏引擎,并在Objective-C++中实现控制器和GUI代码.然后Obj-C++代码是纯C++引擎和Cocoa之间的粘合剂.

我想真的问题是,我可以使用提升吗?

鉴于iPhone OS是OS X的一个子集,仍然提供完整的POSIX层,大多数Boost库应该可以正常工作.它应该就像编写Darwin代码一样.

Objective-C++中有许多限制需要注意(直接来自Objective-C 2.0参考指南):

  • 您不能使用Objective-C语法来调用C++对象
  • 您不能将构造函数或析构函数添加到Objective-C对象
  • 你不能使用这个和自我互换的关键词
  • 类层次结构是分开的; C++类不能从Objective-C类继承,并且Objective-C类不能从C++类继承
  • Objective-C代码中抛出的异常无法在C++代码中捕获,相反,在C++代码中抛出的异常无法在Objective-C代码中捕获.


Zif*_*fre 10

Objective C++支持所有C++.应该可以使用boost,但您可能需要移植一些与平台相关的东西.

  • 我没有任何改动就使用过boost.它开箱即用. (2认同)