1

静的な議論とシングルトンの議論はわかっているので、この質問は静的なキーワードの正当性に関するものではありません。

静的クラスがある場合、そのメモリはMonotouchによってどのように処理されますか。メモリ警告を受信すると、そのメンバーは削除されますか?Monotouchでの静的クラスの使用に関するガイドラインはありますか?

4

1 に答える 1

4

静的クラスとメンバーは、アプリケーションの存続期間中ずっとハングします。

通常、静的クラスについては心配しません。心配する最大のことはViewDidUnload、すべてのコントローラーで適切にクリーンアップしていることを確認することです。

ここであなたはすべきです:

  • アウトレットを破棄してnullに設定します(ReleaseDesignerOutletsMonoTouchの以降のバージョンでこれを行います)。コードから作成されたビューに対しては、自分で行う必要があります。
  • で作成されたUIImage、UIFontなどのインスタンスについても同じようにします。ViewDidLoad
  • ViewDidUnloadの鏡像である必要がありますViewDidLoad

ViewDidUnloadスタックのダウンなど、現在画面に表示されていないコントローラのメモリ不足状態で呼び出されますUINavigationControllers

さらに、UINotificationCenterUIImage、UIFontなどをキャッシュするヘルパークラスからのメモリ不足通知にフックすることもできます。

ビューとイメージを解放すると、静的クラスが使用しているメモリの量によって得られるメモリがはるかに多く解放されます。

于 2012-08-28T12:14:30.977 に答える