1

オブジェクトが表示されると、バックグラウンドスレッドで一連のタスクを実行する UIViewController があり、オブザーバーとして登録されています。初めて呼び出されると、オブザーバーではなくなります。

ビュー コントローラーが表示される前にこれらのタスクを実行すると、ユーザーの時間を節約できることに気付いたので、ビュー コントローラーを初期化し、これらのタスクを実行するメソッドを呼び出しました。

その後、次の行に沿ってエラーが発生し始めました。

An instance [insance] of class [class name] was deallocated while key value observers were still registered with it.

どうすればこれを防ぐことができますか? ビューコントローラーをすぐに表示しても問題ありません。

4

1 に答える 1

2

オブザーバーを完全に登録解除する最後のチャンスであるため、オブザーバーとして使用する予定のこれらのクラスのメソッド dealloc に [notificationCenter removeObserver: self] の呼び出しを追加することをお勧めします。

于 2013-07-02T07:08:29.003 に答える