余分なメモリを取るアニメーション
-
28-09-2019 - |
質問
iPadアプリケーションでアニメーションを使用する必要があります。アニメーションを使用すると、メモリが増加して例外が増えています。アプリケーションを起動すると、メモリのサイズが10 MBになります。起動スペースの2倍(30 MB)。割り当てをテストし、すべてが完璧であるとリークしますが、それでもこの問題が発生しました。なぜそれが起こっているのかわかりません。私のアニメーションコードは次のとおりです。私を助けてください。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
if ([currentView superview])
{
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:mainView cache:YES];
[currentView removeFromSuperview];
[mainView addSubview:nextView];
}
[UIView commitAnimations];
よろしくお願いします、Sekhar Bethalam。
解決
アニメーションがリークを引き起こしていることをどのように確信していますか?
アニメーションなしでサブビューを追加/削除するとどうなりますか?リークはまだそこにありますか?
どこですか nextView
初期化/リリース?
正確には何ですか if ([currentView superview])
私はそれが常に真実に戻ると思うので、チェックするつもりでしたか?
他のヒント
メモリの使用量を増やしているのがメソッド自体であるかどうかはわかりませんが、おそらくあなたのビューコントローラーがロードされているのでしょうか?
また、アニメーションブロックにこれらの行を追加してみてください。私はそれが奨励されていると思うので(私が間違っている場合は私を修正してください)[currentView viewwillappear:yes]; [currentView ViewDidapear:はい]; [MainView ViewWillDisappear:はい]; [Mainview Viewdiddisappear:はい];
また、setanimation transitionはiOS4では落胆していると思われるので、 +(void)遷移と遷移を使用してみてください。 (void(^)(bool expinide))完了