2010-11-20 10 views
-1

「アプリがバックグラウンドになったときにオブジェクトを正しくデオロッキングする方法」という質問が1つしかありません。私はいくつかのアプリで作業しています、すべてうまく動作します。私はバックグラウンドにアプリを置いて、再びそれをクラッシュします。直ちに(私はそれを閉じたところでアプリの星の右)、しかし、私はいくつかのセルを選択するか、例えば単にテーブルビューをスクロールします。だから、私はアプリが既にデータをリリースしていることを確信しています。ここアプリがバックグラウンドに移動したときにオブジェクトを正しくデオロッキングする方法はありますか?

はどれアドバイスのdealloc

- (void)dealloc { 


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

の一例ですか?

答えて

0

を私が検討し、自分自身のコードを再書き込みが。問題は私がメモリの割り当て解除を期待していたためでした。私はautoreleaseを使うべきではありません。それは私が再びそれを開いたときにまだ変わった原因アプリはクラッシュした。

皆さんありがとうございました。私に2つの贈り物を贈ってくださった人ではありません。あなたは馬鹿です。怒らないでください。しかし、あなたにただ一つのアドバイスを与えるのではなく、ただ地面にないネゲを与えてください。

1

アプリケーションデリゲートのapplicationDidEnterBackgroundメソッドで具体的に割り当てを解除しない限り、自動的に割り当てを解除する必要はありません。

私はあなたが抱えている問題を経験したことがありません。たとえそれをバックグラウンドに入れないとしても、同じことがしばらくしても起こらないことは確かですか?

ここでバックグラウンド化するもののすべてが一緒にどのように適合するかの良い説明です:

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]; 
} 
関連する問題