我有一个 Iphone应用程序,其中我将来自服务器的图标图像显示为每种类别的类别作为单元格images.i希望它从我的图像缓存中加载。我想要它在图像缓存中存储该类型的图像,并且下次该类型即将到来时,它可以直接从缓存加载。因此,如果该类型图像存在,则需要从本地加载。其他明智的需要存储和然后显示。我的问题是如何在图像缓存中存储与该类型相对应的图像,以及下次我如何检查它。可以帮助我吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以尝试这样:(对于相应的图像,您需要保存图像名称 - 例如 - nsuser默认值):
- (void) makeCache: (NSString *)name
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *imagePath = [paths objectAtIndex: 0];
// create screen dump of the view of this view controller
NSString *fileName = [NSString stringWithFormat:@"%@", name];
NSString *filePath = [NSString stringWithFormat: @"%@/%@.jpg", imagePath, fileName];
NSData *imageBytes = UIImageJPEGRepresentation(myImageIcon.image, .9); // myImageIcon.image - uiimageview
BOOL saved = [imageBytes writeToFile: filePath atomically: YES];
if (!saved)
{
NSLog(@"error! can't save image at path: %@", filePath);
}
}
然后实施:
- (NSString *) searchFile: (NSString *) fileName
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *imagePath = [paths objectAtIndex: 0];
NSString *filePath = [NSString stringWithFormat: @"%@/%@", imagePath, fileName];
if ([[NSFileManager defaultManager] fileExistsAtPath: filePath])
{
return filePath;
}
else
{
return nil;
}
}
您也可以为png图像执行此操作。祝你好运!