次の質問があります。
複数の動的に作成された UIButtons と複数の動的に作成された Mpmovieplayercontrollers を含む「ModuleViewController」という名前の UIViewController クラスがあるとします。これらの各オブジェクトには、「ModuleViewController」クラスに含まれるコールバック関数があります。すべての UIButton に対して 1 つのコールバックと、すべての Mpmovieplayer コントローラーに対して 1 つのコールバック。
UIScrollview内に複数の「ModuleViewController」クラスインスタンスを追加したいと思います。 私は ARC を使用しません。「ModuleViewController」クラス内でこれらのオブジェクトを割り当てて初期化した後にこれらのオブジェクトを解放すると、ボタンとビデオが再生されないか、アプリケーションがクラッシュします。
現在、私の解決策は、NSMutableArray を作成時にポインターを格納し、後で「ModuleViewController」クラスを解放するときにそれらを解放することです。(例: UIScrollview のビューポートから画面外にある場合は、「ModuleViewController」クラスを解放します)
例えば。ポインタを保持する配列が「objectsRetained」の場合
// ViewDidLoad で fPointers の配列を作成する
NSMutableArray *objectsRetained = [[NSMutableArray alloc] init];
. . // オブジェクト ポインタを配列内に追加して、後の状態で解放します
[objectsRetained addObject:[NSValue valueWithPointer: myObject]];
このソリューションは機能しますが、アプリケーションを分析すると、この領域にメモリ リークの可能性があることが示されます。
これを解決する別の方法はありますか?