2011-03-18 121 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