0

MPMoviePlayerController をサブクラス化します。そのクラスでは、必要なすべての可能な通知を添付しました。DidFinishPlaybackなどExitFullScreenの読み込み方法です。私の質問は、映画を停止して映画プレーヤーのビューを閉じたい場合、moviePlayerPlaybackStateDidChangeメソッドでオブザーバーを削除できますか (また、削除する必要がありstateStoppedますか? ) そうしないとどうなりますか?

4

1 に答える 1

2

どの種類のオブザーバーも削除する最も重要な場所は、dealloc メソッドです。観察が終わったらすぐにオブザーバーを削除することをお勧めしますが、絶対に解放する必要があります。

この理由は、何かのオブザーバーとして登録し、クラスが割り当て解除された場合、監視していたオブジェクトが、現在割り当て解除されているオブジェクトへのコールバックを試みる可能性があるためです。おそらく、これにより EXC_BAD_ACCESS が発生し、アプリケーションが閉じられます。

于 2011-01-27T18:34:46.323 に答える