嗨,在我的iPad應用程序中,我正在使用搜索欄和tableview,搜索完成後我在tableview中顯示的結果。爲了用新的搜索結果更新表,我打電話給reloadData方法。它工作正常,但在少數情況下的應用程序是在[tableviewobject reloaddata]方法崩潰,我得到這個錯誤控制檯如何知道目標c中是否存在對象用ARC
錯誤對象0x95a0300:指針被釋放沒有被分配 *設置malloc_error_break斷點進行調試。
通過觀察上述錯誤我明白了什麼是tableviewobject被從內存中刪除。我將消息發送給釋放的對象。序來克服這個問題,我所做的是我傳遞消息reloadData之前分配內存以tableviewobject這樣
tableviewObject=[[UITableView alloc]init];
tableviewObject.delegate=self;
tableview.datasource=self;
[tableviewObject reloaddata];.
在結果數據沒有實現代碼如下更新情況。現在我想知道的是,我如何知道對象是活着還是從內存中釋放。如果它釋放了如何爲表格視圖對象分配內存以重新加載搜索結果數據。如果有任何想法,請爲此提供解決方案。提前致謝,請幫助我。
注意:在我的項目中,我使用ARC。
閱讀有多少這種錯誤發生的方式http://stackoverflow.com/questions/1424210/iphone-development-pointer-being-freed-was-not-allocated – Tirth 2013-03-14 04:46:54
它也可能是任何被訪問的對象通過你的表視圖數據源,當reloadData被調用時已經被釋放,而不一定是你實際的表視圖。我的猜測是,你的源數組中的一個對象已經被釋放,並且關鍵是確保在釋放數據源數組時將其從數據源數組中移除,以免發生這種情況。但是,所有這些只是一個猜測,因爲你沒有包含任何代碼。如果你真的想要一些幫助,告訴我們你在做什麼。 :) – lnafziger 2013-05-23 04:09:46
如果您可以在模擬器上重現問題,請在殭屍工具下運行它。如果您只能在設備上執行此操作,請轉至產品>方案>編輯方案...>運行>診斷,然後選中「啓用殭屍對象」複選框。 – 2013-05-23 05:21:02