Google 서버에서 다운로드 한 이미지를 캐싱하고 있습니다. 우리는이 같은 ASIHTTPRequest 콜백에서 데이터를 얻을 :iPhone이 내 앱의 문서 디렉토리에 저장된 이미지를 압축합니까?
#pragma mark ASIHTTPRequest callback
-(void)imageDownloadFinished:(ASIHTTPRequest*)aRequest
{
NSString* fileName = aRequest.url.path.lastPathComponent;
[self imageDidArrive:[aRequest responseData] forFileName:fileName];
}
우리는 다음과 같이 우리의 로컬 스토리지에 이미지 데이터를 쓰기 :
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0] ;
NSString* folder = [[documentsDirectory stringByAppendingPathComponent:@"flook.images"] retain];
NSString* fileName = [folder stringByAppendingFormat:@"/%@", aBaseFilename];
BOOL writeSuccess = [anImageData writeToFile:fileName atomically:NO];
다운로드 된 이미지가 45~85킬로바이트 주위에 항상 예상 크기 .
나중에, 우리는 다음과 같이 우리의 캐시에서 이미지를 읽어 훨씬 작 그들이 훨씬 더 압축하기 때문에
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0] ;
NSString* folder = [[documentsDirectory stringByAppendingPathComponent:@"flook.images"] retain];
NSString* fileName = [folder stringByAppendingFormat:@"/%@", aBaseFilename];
image = [UIImage imageWithContentsOfFile:fileName];
때때로, 이미지를이 캐시 읽기에서 반환 - 주변 5~10킬로바이트 OS가이 작업을 수행 했습니까?
편집 - 그것은 밖으로 우리가 작은 이미지를 다운로드하는 것이집니다 때문에 문제가 아이폰에없는
그건 그렇고, 나는 내 자신의 코드를 디버깅하고있어, 나는 뭔가를 놓쳤다 고 믿고 싶어한다! –
"anImageData"는 어떻게 생성됩니까? 예를 들어 UIImageJPEGRepresentation()을 사용하고 있습니까? –
이미지 다운로드 성공을 위해 ASIHTTPRequest 콜백에 의해 제공됩니다. #pragma mark ASIHTTPRequest 콜백 - (void) imageDownloadFinished : (ASIHTTPRequest *) aRequest; { \t NSString * fileName = aRequest.url.path.lastPathComponent; \t [self imageDidArrive : [aRequest responseData] forFileName : fileName]; } –