2011-03-18 53 views

回答

0

对C++对象使用C++内存管理;对Objective-C对象使用Objective-C内存管理。基本上,你需要以某种方式管理你的所有记忆。你做什么来释放/删除/释放一个块或对象完全取决于你是否使用malloc/new/-alloc来创建它。

+0

我的意思是,当你使用C++时,你应该这样做: myClass * c1 = new myClass(); 而不是 myClass c1; – 2011-03-18 14:16:38

+0

这些都是C++语句。如果您想动态地实例化对象,即在堆上,请使用前者。如果它是一个本地对象,并且希望它在超出范围时被销毁,则使用后者。如果使用得当,任何一种方法都能正常工作,但这个决定与Objective-C无关。 – Caleb 2011-03-18 15:23:49

0

不好意思说,不过它总是需要在iOS应用程序中管理自己的内存,除非你特别不关心使用太多的内存。

+0

所以当你使用C++时,你应该手动删除对象吗? – 2011-03-18 13:57:32

+0

是的,这是正确的。 – 2011-03-18 14:14:26

+0

我们正在与朋友做一个应用程序,他正在用C++编写一个自定义分析器,并且他没有创建堆(使用new运算符)的对象,而是像myObject c1那样创建了它们;并让计算机处理内存管理。难道这就是为什么我们的应用程序在iOS上使用该死的40mb RAM的原因 – 2011-03-18 14:21:26

1

不了解Objective C,但在现代C++中使用smartpointers。您不必释放或删除任何内容。所有这一切都照顾到。它和垃圾收集一样好,但效率更高。

+0

你有这个字体吗?谢谢。 – ademar111190 2012-11-05 14:01:00