0

「アプリがバックグラウンドになったときにオブジェクトを正しく解放する方法は?」という質問は 1 つだけです。私はいくつかのアプリに取り組んでいます。すべてがうまく機能します。アプリをバックグラウンドにしてからもう一度起動すると、クラッシュします。すぐにではありません(アプリを閉じたところにスターが付きます)が、たとえばセルの一部を選択したり、テーブルビューをスクロールしたりするだけです。だから私はアプリがすでにリリースされたデータを呼び出すと確信しています。

ここにdeallocの例があります

- (void)dealloc {


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

何かアドバイスはありますか?

4

3 に答える 3

1

アプリ デリゲートの applicationDidEnterBackground メソッドで特に割り当てを解除しない限り、自動的に割り当てが解除されるものはありません。

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

以下は、すべてのバックグラウンド処理がどのように組み合わされるかについての適切な説明です。

iOS 4 のバックグラウンド処理とデリゲート メッセージングについて

于 2010-11-20T22:05:03.727 に答える
0

自分のコードを見直して書き直します。問題は、メモリの割り当て解除で予想したとおりでした。すべきでない場所で自動解放を使用しました。もう一度開いたときにアプリがクラッシュしたのはまだ奇妙な原因です。

みんなありがとう、私に2つのネガをくれた君たちじゃなくて、君たちはバカだ。気分を害してはいけませんが、アドバイスをする代わりに、根拠のない否定をするだけです。

于 2010-11-21T12:26:38.970 に答える
0

このようなオブジェクトは決してリリースしないでください。使用する

- (void)dealloc {

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

 [super dealloc];
}
于 2013-11-21T18:48:28.767 に答える