Мы кэшируем изображения, загруженные с нашего сервера. Мы получаем данные от обратного вызова 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-85KB ,
Позже мы читаем образы из нашего кэша, как это:
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-10KB. ОО сделала это нам?
Edit - получается, что мы скачивание маленьких изображений, так что вопрос не стоит на iPhone
Кстати, я отлаживаю код, который не является моим собственным, поэтому вполне готов поверить, что я что-то пропустил! –
Как создается «anImageData»? Например, вы используете UIImageJPEGRepresentation()? –
Он предоставляется обратным вызовом ASIHTTPRequest для успеха при загрузке изображения: #pragma mark ASIHTTPRequest callbacks - (void) imageDownloadFinished: (ASIHTTPRequest *) aRequest; { \t NSString * fileName = aRequest.url.path.lastPathComponent; \t [self imageDidArrive: [aRequest responseData] forFileName: имя_файла]; } –