2

同じUIAlertView*alertViewを使用する複数のViewコントローラークラスがあるとします。*alertViewのデリゲートは集中型デリゲートに設定されます。

.tagを使用して、それに基づいてさまざまなことを実行したいので、これを行います。

問題は、アラートビューを呼び出したり閉じたりするたびに、メモリリークを防ぐために何をする必要があるかということです。

毎回リリースするべきではありませんか?それともこれは非常に悪い考えですか?

ありがとう。

4

2 に答える 2

1

UIAlertView は、アプリのどこからでも「表示」できます。メインのUIViewControllerにタイマーがあり、UIAlertViewを頻繁に表示するアプリがあります。そのタイマーが切れると、表示されているメイン ビューが完全に異なる UIViewController (したがってビュー) からのものであっても、アラートが前面に表示されます。

UIViewControllers のいずれかから UIAlertView を「アクティブに」表示したい場合 (ユーザーのアクションに基づいて言ってみましょう)、次の 2 つのいずれかを行います。

1) Application Delegate Object をそこに実装された UIAlertView でセットアップし、アラート ビューを呼び出す (表示する) ためのアクセサー メソッドを使用して、そこから解放する、または

2) そこに実装された AlertView を使用して、シングルトンのようなオブジェクトを生成します!!!

どちらの場合でも、これらの配置のいずれかに対して記述した dealloc ルーチン内で一度 UIAlertView の割り当てを解除し、オブジェクトの初期化時に一度だけ割り当てることができます。

于 2012-07-16T15:48:21.563 に答える
0

他のオブジェクトと同じように扱ってください。保持したい場合は、self.myAlert のような保持されたプロパティに割り当てます。通常の作成時と同じように、リリースする必要があります。保持されたプロパティは、あなたのためにそれを維持するように世話をします。

保持 (割り当て、コピーなど) とリリースのバランスを常に維持してください。

于 2012-07-16T15:47:27.493 に答える