1

これが状況です:水平にスクロールするUIScrollView(と呼ばれる) があります。Aこのスクロール ビューでは、プロパティpagingEnabledは に設定されていYESます。画面の右側に があり、これはUIButtonに接続されてself.viewおり、スクロール ビューでスクロールしません。

ここに画像の説明を入力

タップすると、このボタンは垂直にスクロールUIViewする別のUIScrollView( と呼ばれる) を内部に表示します。Bこのスクロール ビューには、UIButtonとのリストが含まれていますUILabelUIButtonバックグラウンドイメージとしてのすべてUIImage。この方法では画像のタッチイベントを管理しやすいため、UIButton代わりに使用しました。には、すべてのイメージの説明が含まれていますUIImageViewUILabel

ここに画像の説明を入力

問題: のすべてのページについて、 に含まれるA scroll viewを変更する必要があります。これは、ページごとに異なるイメージ リストがあるためです。したがって、スクロール ビュー デリゲート メソッドでは、古いものと古いものをビューから削除し、それらが含まれている からも削除します。と の新しいリストを作成し、に追加して配列に挿入します。UIButtonB scroll viewscrollView:didEndScrollingAnimationUIButtonUILabelNSArrayUIButtonUILabelself.view[array addObject:]

可変数のスクロールの後、アプリはメモリ警告メッセージを受け取り、システムから強制終了されます。

私は ARC を使用しているため、古いオブジェクトが解放されているかどうかを理解することはほとんど不可能です (いずれにせよ、それらはシステム オブジェクトであるため、非常に困難です)。

何か案は ?

4

1 に答える 1

0

あなたの場合に私がすることは、私が他の人に勧めるものと同じです:

  • プロファイルを使用して、ヒープ間の違いを分析します。このようにして、スワイプごとにアプリケーションのメモリ フットプリントを確認できます。

それを行う方法の基本的なチュートリアルについては、これを確認できます。これは少しあいまいであり、客観的な答えが必要なのは承知していますが、問題は、現在の問題がアプリケーションの実際の問題に対応していない可能性があるということです。ヒープの分析後にさらにサポートが必要な場合は、質問を編集してお知らせください。

そして、これは私が使用した元の記事で、bbum 氏からのものです。

于 2012-10-30T16:10:38.917 に答える