我是C++的15年資深人士,我認爲我可以輕鬆處理iPhone上的內存問題。但是我幾次都被這個新的環境所感染。這是我的問題。我希望我能正確地提出這個問題。appdelegate上的收藏得到了跺腳
基本上,我保持我的公共對象的可變數組在AppDelegate中。這似乎是維護多個不同視圖使用的對象集合的合理位置。但是,在創建視圖並將視圖推送到導航控制器的時間以及視圖開始使用這些值的時間之間,創建我的對象的內存中的位置被不同的值踩踏。
我回顧我的所有代碼,以確保引用計數是準確的,但沒有發現任何東西。所以我評論說所有的「釋放」電話,以保證對象仍然存在,但仍然繼續跺腳。
我的問題是這樣的...... 是否有事情發生,我需要知道什麼時候能得到踐踏我「推」,可能會導致我的記憶觀點?我有一個用戶按下的按鈕,將alloc-init一個viewcontroller,然後爲包含導航控制器做一個「pushViewController」。我在隨後的一行中驗證我的對象是否已創建並跟蹤內存。不幸的是,當按鈕事件展開爲「PurpleEventCallback」時,內存被踩踏。
這對任何人都有意義嗎?我的觀點發生了什麼事情,這並不是我所知道的,會導致我的記憶失效?
準確而言:以'alloc'或'new'開始或以'copy'開始的方法是唯一返回非自動釋放對象的方法。 – 2009-11-29 17:52:46
對於NSZombieEnabled爲+1。作爲一名長期的C++開發人員,我真的需要閱讀Cocoa的內存管理編程指南,特別關注所有權。 http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html – 2009-11-29 18:10:54
在這裏,我認爲我很聰明,通過設置我的原始數組大小和創建飛行中的字符串。我不知道他們是autoreleased。我回去發現了一些需要讓他們的參考數字出現偏差的差異。謝謝! Marcus – 2009-12-08 18:37:51