Ios 如何从远程服务器下载无限数量的图像并在UICollection视图/UITableView中显示这些图像?

Ios 如何从远程服务器下载无限数量的图像并在UICollection视图/UITableView中显示这些图像?,ios,objective-c,uitableview,memory-leaks,uicollectionview,Ios,Objective C,Uitableview,Memory Leaks,Uicollectionview,我想在UITableView/UICollectionview中显示无限图像,此处图像将从远程服务器接收,我已使用GCD完成此操作,但它会导致内存问题和应用程序崩溃。请帮助修复此问题。我还注意到一些图片没有被释放。这是我用来下载图片的一段代码 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData *data = [NSData dataWithCont

我想在UITableView/UICollectionview中显示无限图像,此处图像将从远程服务器接收,我已使用GCD完成此操作,但它会导致内存问题和应用程序崩溃。请帮助修复此问题。我还注意到一些图片没有被释放。这是我用来下载图片的一段代码

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSData *data = [NSData dataWithContentsOfURL:url];
        UIImage *image = [UIImage imageWithData:data];
        NSData *imgData = UIImageJPEGRepresentation(image, 0.1);
        UIImage *image1 = [UIImage imageWithData:imgData];
        if (image1.size.width != 130 || image1.size.height != 100)
            {
                CGSize itemSize = CGSizeMake(130, 100);
                UIGraphicsBeginImageContextWithOptions(itemSize, NO, 0.0f);
                CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
                [image1 drawInRect:imageRect];
                image1  = UIGraphicsGetImageFromCurrentImageContext();
                [self setImage:image1 forKey:[url absoluteString]];
                //  NSLog(@" down Size of Image(bytes):%d",[imgData length]);
                UIGraphicsEndImageContext();

            }

        dispatch_async(dispatch_get_main_queue(), ^{
            completion(image1);
            //image1=nil;
        });
    });

您可以使用懒散的加载概念

参考资料:

您可以使用加载无限映像、良好性能、缓存..

您可以使用:

关于内存问题和崩溃,请注意保留周期,使用探查器/工具,如果要继续使用代码,最好更改:

__weak MyClassViewOrViewController* weakSelf = self;      
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    ...
    __strong MyClassViewOrViewController *strongSelf = weakSelf;
    [strongSelf setImage:image1 forKey:[url absoluteString]];
    ...
});
谢谢

J