iOS:每行具有多个图像的TableView(SDWebImage)

iOS:每行具有多个图像的TableView(SDWebImage),ios,asynchronous,uitableview,sdwebimage,Ios,Asynchronous,Uitableview,Sdwebimage,我对我的分区桌面视图有点失望。我使用一个自定义UITableViewCell,其中有4个图像,如下所示: 我尝试通过SDWebImage为每个单元格加载图像 加载过程都在自定义UITableViewCell中完成,而不是在UITableViewController中完成。从cellforrowatinexpath我只需调用[cell setup],它在当前单元格中执行以下代码: NSArray *imageViews = [NSArray arrayWithObjects:self.image

我对我的分区桌面视图有点失望。我使用一个自定义UITableViewCell,其中有4个图像,如下所示:

我尝试通过SDWebImage为每个单元格加载图像

加载过程都在自定义UITableViewCell中完成,而不是在UITableViewController中完成。从
cellforrowatinexpath
我只需调用
[cell setup]
,它在当前单元格中执行以下代码:

NSArray *imageViews = [NSArray arrayWithObjects:self.imageView1, self.imageView2, self.imageView3, self.imageView4, nil];

for (int i = 0; i < self.products.count; i++) {

    Product *currentProduct = [self.products objectAtIndex:i];
    UIImageView *currentImageView = [imageViews objectAtIndex:i];

    NSString *thumbURL = [[CommonCode getUnzippedDirectory] stringByAppendingPathComponent:currentProduct.collectionFolderName];
    thumbURL = [thumbURL stringByAppendingPathComponent:thumbFolder];
    thumbURL = [thumbURL stringByAppendingPathComponent:currentProduct.product_photo];

    [currentImageView setContentMode:UIViewContentModeScaleAspectFit];

    [currentImageView setImageWithURL:[NSURL fileURLWithPath:thumbURL]
                   placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
}
我还尝试通过
dispatch\u asnyc
加载图像,结果类似是否可能与并发文件操作有关?

此外,当我快速滚动时,会收到内存警告,因此我必须清除SDWebImage的缓存。同时,它停止在上面提到的SDWebImage中的代码行


我已经在网上搜索了两天,没有找到有用的东西。我很乐意得到一些提示来解决这个问题。如果有人需要额外的数据,如碰撞报告或其他什么,请告诉我,我会尽快提供。

我遇到过同样的问题,但我暂时按照下面的方式解决,但这会导致内存问题,尤其是在iPhone 4s上


我认为多图像下载是不合逻辑的,但我认为方法是下载多个图像,然后在一个图像中绘制多个图像,然后进行显示,但这可能会产生大量代码行。

是否使用ARC?当应用程序崩溃时,会显示什么消息(EXC_BAD_ACCESS、sig fault等)?你试过启用僵尸吗?是的,我正在使用ARC。不幸的是,现在有消息了。在应用程序崩溃之前,我在TableViewController中只收到几个内存警告。此外,所有异常的符号断点显示SDWebImage中的这一行出现问题(它表示:线程3:在断点0处停止)。当我使用异步队列而不是SDWebImage时,也会发生同样的情况-当我想要分配映像时会出现问题。我认为在分配映像时停止的原因是内存不足。但SDWebImage不应该处理这个问题吗?我同意Bins Ich的说法,即该应用程序使用了太多内存。即使图像文件的大小是500k(对于缩略图图像来说似乎很大),它在内存中的大小也可能大得多(内存中的大小=宽度x高度x字节/像素)。作为测试,建议创建与图像视图大小相同的表视图中图像的另一个版本。我怀疑你不会有同样的问题。你试图做的事情让我觉得是一个集合视图。是否确实要使用剖切表视图?苹果现在提供了内置的功能,包括集合视图,以有效地管理出列、滚动等。
UIImage *image = nil;
if ([imageOrData isKindOfClass:[NSData class]])
{
    image = [[UIImage alloc] initWithData:(NSData *)imageOrData];
}
NSArray *arrImgs = cellModel.thumbnails_qqnews;
if (arrImgs.count > 0) {
    [self.imgView.subviews enumerateObjectsUsingBlock:^(__kindof UIImageView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        [obj sd_setImageWithURL:[NSURL URLWithString:arrImgs[idx]] placeholderImage:[UIImage imageNamed:@"placeholdImage"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
            if (image != nil) {
                obj.image = [UIImage cutImageWithTargetSize:[NEMulTiNewsCell getImgSize] image:image];
            }
        }];
    }];
}