使用C++;? 我在Objto-C(iPhone)中编写了一些小程序,但最终我想主要是用C++编写程序。(我只是觉得简单多了。)
如果这是真的,我将如何: 在C++中管理内存?(C++是否有一个类似的命令我需要使用?)使用C++;? 我在Objto-C(iPhone)中编写了一些小程序,但最终我想主要是用C++编写程序。(我只是觉得简单多了。),iphone,c++,objective-c,ios4,Iphone,C++,Objective C,Ios4,如果这是真的,我将如何: 在C++中管理内存?(C++是否有一个类似的命令我需要使用?) 混合C++和Objto-C编码?(甚至,我应该吗?) 将一个C++对象,像一个字符串,并转换成NString? 谢谢大家!! 德里克 对。C++有一个删除>代码>,但它只适用于用“代码>新< /Calp>创建的对象(对于惯用的C++代码,不是每个对象都适用)。C++也没有内置的引用计数,只是纯所有权。 > p>如果使用代码> .mm/c>扩展,则编译为Objto-C++,这允许您混合Objto-C和C++
std::string::c_str()
来获取可以传递到+[NSString stringWithUTF8String:][/code>中的字符串
我的两分钱:如果你觉得C++比Objto-C容易很多,你对C++中的内存管理一无所知,你应该花大量的时间学习纯C++;如果你不知道自己在做什么,那么在C++中用脚射击是非常容易的。
C++中的内存管理?(C++是否有一个类似的命令我需要使用?) c++使用
new
和delete
。具体来说,C++程序更喜欢使用范围绑定资源管理(SBRM)。使用这些容器时,管理动态分配非常容易。然而,引用计数目前还没有内置到语言中——您可以使用boost来实现更高级的指针容器,包括那些提供引用计数的容器
<>混合C++和Objto-C编码?(甚至,我应该吗?)
您可以通过使用扩展名.mm
或.M
或使用编译器标志轻松完成。请注意,您不应该只启用objc++的所有功能——这会影响您的构建时间。还要注意的是,有一些限制,包括无法将C++类型分为Objc类型,反之亦然。任何明智的C++开发工具都会启用一个重要标志,即当你在Objc类中使用C++类型作为变量时,C++会生成构造函数/析构函数调用。否则,您将崩溃,被迫使用PIPML,或者不得不手动构建/销毁所有C++实例(如Objs类型的IVAR)。这意味着您使用的这些类型都需要默认构造函数。你可以混合各种语言,如果你喜欢的话,也可以这样做。关于在苹果的文档中混合它们还有一些注意事项,但这些是重要的。。。哦,还要小心隔离您的异常(您也必须使用objc)
将一个C++对象,像一个字符串,并将其转换成NString?
参见John Calsbeek的回答祝你好运谢谢你的快速回复,约翰!我会听从你的建议。我强烈建议坚持使用标准开发环境,即Objective-C和Cocoa Touch。用一种似乎“更容易”的语言编写应用程序可能很有诱惑力,但最好使用环境设计的语言,因为理念是一致的,有更多的文档/帮助可用,您不必担心转换任何内容。要编写一个好的iOS应用程序,你必须接受苹果的理念,Objective-C就是这一理念的一部分。