UITableView를 만들고 이미지 속성을 설정해야하는 URL 배열이 있습니다. dispatch_async를 사용하여 이미지를 검색하고 강력한 속성으로 선언 한 NSCache에 저장하는 방식으로 테이블의 스크롤 기능을 향상 시켰습니다.하지만 지금은 테이블을 스크롤 할 때 이미지를 볼 수 있습니다. 셀의 이전 행이 표시되고 스크롤이 중지되면 이미지가 업데이트되어야하지만 가끔씩 다른 이미지도 순환합니다. 여기 cellForRowAtIndexPathMethod 내 코드입니다, 왜 이런 일이 일어나는 지 아십니까?테이블 뷰에서 스크롤하는 동안 이미지가 다시로드되는 것을 막는 방법
UIImage* image = [_imageCache objectForKey:article.imageURL];
if(image){
[cell.imageRight setImage:image];
} else {
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0ul);
dispatch_async(queue, ^{
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:article.imageURL]]];
dispatch_async(dispatch_get_main_queue(), ^{
[_imageCache setObject:image forKey:article.imageURL];
[cell.imageRight setImage:img];
[cell setNeedsLayout];
});
});
}