iPhone-insertSubviewはObjectAllocをジャンプさせます
-
08-07-2019 - |
質問
新しいviewControllerを追加するたびに、ObjectAllocは非常に高くジャンプし、再びダウンすることはありません。 removeFromSuperviewを呼び出した後でも。これは正常ですか?
if((UIButton *) sender == gameArcadeBtn) {
GameArcade *gameArcadeController = [[GameArcade alloc]
initWithNibName:@"GameArcade" bundle:nil];
self.gameArcade = gameArcadeController;
[gameArcadeController release];
[self.view insertSubview:gameArcadeController.view atIndex:1];
}
解決
ビューをインスタンス化すると、常に多くのオブジェクトが作成されます。このビューがメモリ内にあるか、自動解放されていない限り、オブジェクトはメモリ内に割り当てられたままになります。したがって、あなたの質問に答えるために、これは正常です。
メモリの使用について心配しているように聞こえますが、 too にならないようにオブジェクトの割り当てを監視することは重要ですが、アプリのリークを見つけることがより重要です。
メモリ管理のヒント:
1)遅延読み込みを行います。ユーザーが要求したときにのみビューをロードします。すべてはアプリの開始時ではありません
2)不要になったときにできることはすべて削除します。これは、viewWillAppearおよびviewDidDisappear
で大量の作業を行うことを意味します
3)@propertiesとそれが自動解放とどのように関係するかを学び、すべてにプロパティを使用しないでください。
4)魅力的ですが、不要になったオブジェクトの自動解放と手動解放は避けてください。
他のヒント
これはおそらく、クラスのビューのコントローラーを保持しているという事実によるものです。リリースしてみてください
所属していません StackOverflow