問題は次のとおりです。ツリーマップレイアウトでいくつかの写真を表示するアプリを作成しています(例については、https://raw.github.com/beckchr/ithaka-treemap/master/Core-API.pngを参照してください)これレイアウトは UIScrollView に表示されます。そのスクロールビューには多くの画像を追加できるので、現在画面に表示されていないものを解放したいと考えています。私はARCを使用していません。
私の時点では、どの写真をリリースする必要があるか、およびスクロール中にそれを行う方法 (「アンロード」メソッドを呼び出す) を知っています。そのメソッドの無駄な呼び出しはありません。問題は、画像がリリースされると、スクロールが少しの間停止することです (数ミリ秒ですが、これは見栄えが悪く、スクロールが「ジャンプ」して遅くなり、まったくスムーズではなくなります)。
私が試したこと(「アンロード」メソッドの本文に入れます):
imageview.image = nil
performSelectorInBackground:@selector(effectiveUnload) withObject:nil
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0,^(void){
dispatch_sync(dispatch_get_main_queue(), ^(void){
imageview.image=nil}
}
この問題は奇妙だと思います。メモリの割り当てには速度低下の影響はまったくなく、メモリの解放にはのみ影響があるためです。
ご協力いただきありがとうございます。詳細についてはお気軽にお問い合わせください。