프로필 이미지를 NSMutableDictionary에 저장하는 이미지 캐싱 클래스가 있습니다. 키가 존재하면 캐시는 UIImage 객체를 반환하고 그렇지 않으면 캐시를 다운로드하여 사전에 저장하고 UIImage를 반환합니다. 이 공유 캐시는이 같은 NSThreaded 방법 내에서 호출됩니다UITableViewCell 스레드에서 이미지 캐싱
[NSThread detachNewThreadSelector:@selector(setImageForUser:) toTarget:self withObject:imageUrlString];
-(void)setImageForUser:(NSString *)imageUrlString {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
LPImageCacher *imageCache = [LPImageCacher sharedCache];
UIImage *profileImg = [imageCache getCachedImageFromMemory:imageUrlString];
self.userProfileImageView.image = profileImg;
if (profileImg == nil) {
imageUrlString = [[myGlobals sharedInstance].avatarUrlDefault stringByAppendingString:@"/avatar.png"];
self.userProfileImageView.image = [imageCache getCachedImageFromMemory:imageUrlString];
}
[pool release];
}
문제 아무것도로드하기 전에 그들이 jQuery과 스크롤하면 이미지가 백 로그 취득 후 결국 모든 이미지를로드하고이 깜박 것으로 변경 현재 셀에 올바른 셀이 나타날 때까지 각 셀에 NSThread의 인스턴스를 생성하고 -prepareForReuse의 스레드를 취소하는 것이 좋을 것이라고 생각했지만 NSThread 객체를 다시 사용할 수없는 것처럼 보입니다.이 문제를 해결하는 방법에 대한 아이디어가 있습니까?