次のことを行います。
- (NSString *)ImagesDirectoryPath
{
NSFileManager *fileManger = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
basePath = [basePath stringByAppendingFormat:@"/Images"];
NSError *error;
if(![fileManger fileExistsAtPath:basePath])
{
[fileManger createDirectoryAtPath:basePath withIntermediateDirectories:NO attributes:nil error:&error];
}
return basePath;
}
このメソッドは、ドキュメント ディレクトリの下のイメージ パスを返します。
画像の名前が表示されたので、画像ディレクトリが存在するかどうかを確認します。終了した場合、その img を使用するか、img をダウンロードして保存します // このコードは cellForRowAtIndexPath になります
NSString *strImgPath = [self ImagesDirectoryPath];
strImgPath = [strImgPath stringByAppendingFormat:[NSString stringWithFormat:@"/%@.png",imgName]];
NSFileManager *fileManger = [NSFileManager defaultManager];
if(![fileManger fileExistsAtPath:strImgPath]) //Check wether image exits at Image Folder in Doc Dir
{//file not exists
UIImage *imgForCell = [MyClass getImageWithName:imgName];
if(imgForCell)
{
NSData *dataImg = UIImagePNGRepresentation(imgForCell);
if(dataImg)
{
[dataImg writeToFile:strImgPath atomically:YES];
}
}
imgView.image=imgForCell; //Set Image in ImageView
}
else
{//file exists
NSData *imgData = [NSData dataWithContentsOfFile:strImgPath];
UIImage*imgFound = [UIImage imageWithData:imgData];
imgView.image=imgFound; //Set Image in ImageView
}