在有人说这个话题被重复多次之前,请注意我真的不需要从网络加载远程图像(SDWebImage github解决方案),我正在尝试加载动态保存在文档文件夹中的图像,所以它们是当我想将它们加载到我的 tableView 上时,它们是本地的,通过 sqlite 表上的记录引用它们,我在其中保存了由代码生成的图像名称。
因此,在解析了我所有的 sqlite 数据之后,在我的 CellForRowAtIndexPath 方法中的某个时刻,我有以下代码行:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
NSString *imageName = [[favorites objectAtIndex:[indexPath row]] objectForKey:@"imagename"];
cell.image.image = [self loadImage: imageName]; // Is a custom cell so cell.image is a UIImageView, and I'm setting its image property
...
}
我的 loadImage 方法看起来像:
- (UIImage*)loadImage:(NSString*)imageName {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageName]];
return [UIImage imageWithContentsOfFile:fullPath];
}
另请注意,此代码确实有效,但向下滚动表格看起来很滞后。如何提高性能,我的意思是在后台加载图像,但图像已经存在。有人可以给我一个具体的解决方案吗?
只是让你知道,我正在使用 iOS 5 和 ARC。
任何帮助将不胜感激。