내 tableviewcell에있는 API에서 이미지를로드하는 중, UITableView를 스크롤 할 때마다 이미지가 다운로드됩니다. 그렇다면이 이미지를 저장하는 가장 좋은 방법은 무엇이며 이미 이미지가 이미 있으면 이미지를 다시 다운로드 할 필요가 없습니까? 텍스트UITableViewCell에 이미지 저장
같은 일이, 그것은 매우 큰 아니라면 내가 텍스트 ...
내 tableviewcell에있는 API에서 이미지를로드하는 중, UITableView를 스크롤 할 때마다 이미지가 다운로드됩니다. 그렇다면이 이미지를 저장하는 가장 좋은 방법은 무엇이며 이미 이미지가 이미 있으면 이미지를 다시 다운로드 할 필요가 없습니까? 텍스트UITableViewCell에 이미지 저장
같은 일이, 그것은 매우 큰 아니라면 내가 텍스트 ...
을 절약 할 수있는 방법, 당신은 한 번 다운로드 NSData
객체로 사용자 환경 (NSUserDefaults
)에 저장할 수 있습니다. 나를 위해 일합니다.
또는 NSUrlConnection
과 함께 비동기 요청을 사용하고 원하는 방식으로 캐싱을 구현할 수 있습니다. 예를 들어, 이미지를 일주일에 한 번만 업데이트하십시오.
또한 기본 캐시 설정이 NSUrlConnection
일지라도 충분할 수 있습니다.
More on caching
편집
비동기 요청의 예.
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: url]];
URLConnectionDelegate *delegate = ...;
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:delegate];
if (!connection) {
// something went wrong
}
위임자는 주로 수신 된 데이터를 처리하고 연결을 종료하는 방법이 필요합니다.
NSMutableData *receivedData
개체가 있다고 가정합니다.
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[receivedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// success, do whatever you want with data
[receivedData release];
[connection release];
}
링크는 위 API documentation 위임 구조에 대한 자세한 정보를 제공합니다.
iOS 사이트 샘플 코드 섹션에서 LazyTableImages 샘플 애플리케이션을 확인하십시오. NSUrlConnection 비동기 호출을 사용하여 테이블 셀의 이미지를 다운로드하고 NSMutableArray에 이미지 (및 텍스트)를 저장하는 좋은 예가 있습니다.
이 샘플 로딩과 jQuery과 표시하는 다단계 접근 방식을 보여줍니다. 먼저 테이블이 가능한 한 빨리로드 될 수 있도록 RSS 피드에서 관련 텍스트를로드 한 다음 행을 비동기 적으로 다운로드하여 UI가 더 많습니다. 이 반응합니다.
큰 생각이 큽니까? – aherlambang
@EquinoX 나는 3-5kb의 많은 심상을 저장한다. 그러나 '빅'에 관한 모든 것이 나의 추측입니다. NSUserDefaults는 큰 바이너리 객체를 보유하지 않아야한다고 가정합니다. 그리고 어떤 경우에도 파일 시스템에 이미지를 저장할 수 있습니다. –
API 및 UITableView 함께, 그것은 비동기 요청을 사용하는 것이 좋습니다 ... 나는 어떻게 생각하는지 모르겠다. .. 당신은 더 많은 참조를 지적 할 수있다 .. 구글은 그 중 많은 것을 가지고 있지 않다. – aherlambang