我想我理解Objective-C++与Cocoa是如何工作的,并且我精通命令行C++的基础知识,但我有点害怕尝试将它与Objective-C混合使用。
我猜如果是这样的话,一个人就不需要学习任何Obj-C了,只要他们知道把C++代码放在哪里!我说错了吗?
另外,有没有人能帮我弄清楚这一点,或者至少给我指个地方,让我了解更多这方面的知识?这个话题在网络上很少见,我也看不懂苹果的文档。
发布于 2010-01-15 20:28:23
我的建议是在你的项目中有Objective-C文件( .m文件),然后将你的Objective-C++放在单独的文件中(正如diciu提到的,.mm文件)。
一种策略是使用这些Objective-C++类作为C++类的包装器:用C++编写代码,就像普通的.cpp文件一样。然后,当您需要从Objective-C文件访问C++中的某些功能时,编写一个包装器Objective-C++类并从Objective-C调用它。
(想象一下这样一种情况:您正在为分解良好的Windows或Linux程序编写Cocoa接口:所有应用程序逻辑都是以平台无关的方式编写的,并且您“只需要”用Cocoa编写UI就可以使其在Mac上运行。
但是,采用这种包装器方法的另一个原因是Objective-C++是一种混合语言,因此它在两个方向上的能力都有局限性。
发布于 2010-01-16 04:31:28
关于objective-c++,你需要理解的是它的名字是个谎言。或者至少意味着比你想象的要多得多。
Objective-c++并不意味着你可以编写混合的objective-c++“对象”。这意味着您可以在同一文件中使用c++和objective c。它们可以直接相互引用-不能相互继承或派生。
发布于 2010-01-15 19:51:27
将.m文件重命名为.mm,您将能够在其中编写(Objective-)C++代码。
https://stackoverflow.com/questions/2071102
复制相似问题