2010-11-20 81 views
-1

只有一個問題「如何在應用程序轉到背景時正確釋放對象?」。我正在開發一些應用程序,一切都很好,很好。當我把應用程序放到背景上,然後再次啓動時,它會崩潰。不是馬上(應用程序星星就在我關閉它的地方),但是當我選擇一些單元格或者只是滾動tableview時。所以我很確定這個應用程序調用已經發布了數據。如何在應用程序轉到後臺時正確釋放對象?

這裏是例子的dealloc

- (void)dealloc { 


    [anObject release]; 
    [array release]; 
    [locationManager release]; 
    [currentLatitude release]; 
    [currentLongitude release]; 
    [filteredListContent release]; 
    [super dealloc]; 
} 

任何建議嗎?

回答

0

我檢討和重新編寫自己的代碼。問題出乎我的意料,在回憶內存時。我使用autorelease,我不應該。它仍然奇怪,導致應用程序崩潰時,我再次打開它。

謝謝大家,不是你們給我的禮物2 negs,你是混蛋。不要被冒犯,但不要提出一些建議,你只是給不帶根本的否定。

1

除非您專門釋放應用程序委託的applicationDidEnterBackground方法中的內容,否則不應爲您自動釋放任何內容。

我從來沒有遇到過你遇到的問題。你確定同樣的事情在一段時間後不會發生,即使你從不把它放在後臺?

下面是如何將所有的東西backgrounding結合在一起的一個很好的解釋:

Understanding iOS 4 Backgrounding and Delegate Messaging

0

永遠不要釋放任何這樣的對象。使用

- (void)dealloc { 

if(anObject){ 
[anObject release]; 
anObject = nil; 
} 
if(array){ 
[array release]; 
array = nil; 
} 
//same approach for all. 

[super dealloc]; 
} 
相關問題