下6個免費的malloc-ED存儲器如何ARC下釋放在Objective-C動態分配的存儲器?iOS 5及ARC
通過dynamically
我的意思是內存malloc
分配給一些伊娃。
dealloc
和viewDidUnload
不再被調用,至少通過我的測試。
所以當視圖控制器,不再需要時,以及如何開始釋放內存?
我所做的就是創建一個名爲Releasable
的協議(我從C#中竊取的一個想法),它具有單一方法-(void) release
。 當對象不再需要時,這將由一些外部代理調用。
究竟爲什麼你想這樣做嗎?使用ARC時,只要不再有任何引用,內存就可用於分配。應該不需要手動處理這種情況。 – ZekeTheGeek 2013-04-22 20:22:01
'viewDidUnload'例程不再被調用,因爲iOS不再在'didReceiveMemoryWarning'上自動釋放視圖。即使在iOS 6天之前,當系統有內存警告時,也只調用viewDidUnload。就我個人而言,我傾向於用你的控制器的'dealloc'方法調用你的'free'調用。或者,更好的是,看看你是否可以完全避免「malloc」調用。 – Rob 2013-04-22 20:22:37
@ZekeTheGeek我正在使用OpenGL ES 2.0並創建頂點。它們是普通的C結構。由於我需要速度和空間,我不想將50000多個頂點打包成NSValue或類似的。 – 2013-04-22 20:27:53