我想制作一款iPhone应用,但我打算用C++制作这个框架.是否可以在Objective-C++中使用模板之类的东西.我想真的问题是,我可以使用提升吗?
是否可以在Objective-C++中使用模板之类的东西.
是的,但您需要注意如何在纯C++层和Objective-C++代码之间混合类型和接口.请记住图层之间的界限,您需要转换类型,例如std::string
to 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代码中捕获.
Objective C++支持所有C++.应该可以使用boost,但您可能需要移植一些与平台相关的东西.