这是问题:我正在编写一个显示一些图片的应用程序,带有树形图布局(例如,请参阅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}
}
我认为这个问题很奇怪,因为内存分配绝对没有减慢效果,而只有内存释放。
感谢您的帮助,请随时询问更多信息。