我一直在通过Hillegass书籍学习Objective-C和Cocoa,我觉得使用Objective-C++可能会更好.Objective-C似乎是开发UI的明确选择,但我有很强的C++背景,并且喜欢用C++开发应用程序后端并使用Objective-C++来进行UI集成.但我想知道Apple是否会继续开发Objective-C++,还是会成为死胡同.
是否有人使用Objective-C++?
免责声明:我不为Apple工作或代言,所以这是我的观点:
我不能代表主要的开发商店,但在我的小组中,我们已经使用Objective-C++来集成C++库,并且当你建议用C++编写后端时.正如@alxp所提到的那样,跨越语言边界的异常处理之类的事情是痛苦的,但只要稍加规划,就可以避免大多数这些痛苦.对于经验丰富的C++开发人员来说,收益可能非常值得痛苦.
在支持方面,我认为您可以假设其当前状态的支持不会很快消失.它是GCC代码库的一部分,而Clang工具链(Apple的下一个编译器工具链)完全支持Objective-C++.另一方面,例如,没有任何官方保证Apple会继续开发整合修复一些疣.
对于当前的项目,我想说如果使用Objective-C++提供好处,依靠现有的支持是安全的,你应该使用它.
我使用ObjC++的唯一一次是移植库,以便从我的ObjC代码访问它们.ObjC++和ObjC如何处理异常,类创建和破坏等事情之间的冲突,使得在一个项目中兼顾两种语言变得非常令人头痛.
我不认为支持会像Cocoa/Java那样很快就会消失,因为它是GCC的一部分,而且Objective-C++编译成直接的C++,就像Objective-C可以编译成直接的一样C,但与Objective-C相比,我仍然觉得构建软件并不是一个非常愉快的环境,并且能够轻松地完全使用OS X提供的框架.