如何将url图像存储在缓存中,然后在iphone的imageview中显示

如何将url图像存储在缓存中,然后在iphone的imageview中显示,iphone,ios,ios4,Iphone,Ios,Ios4,我直接在Imageview中打开URL图像,但我想将图像存储在缓存中以供将来参考。。。帮我解决我的问题 提前感谢您可以使用使用图像缓存的 此库为UIImageVIew提供了一个类别,支持来自web的远程图像 它规定: 向Cocoa Touch框架添加web图像和缓存管理的UIImageView类别 异步图像下载程序 具有自动缓存过期处理的异步内存+磁盘映像缓存 背景图像解压缩 保证同一URL不会被多次下载 保证伪造的URL不会被一次又一次地重试 保证主线程永远不会被阻塞 表演! 使用GCD和AR

我直接在Imageview中打开URL图像,但我想将图像存储在缓存中以供将来参考。。。帮我解决我的问题

提前感谢

您可以使用使用图像缓存的

此库为
UIImageVIew
提供了一个类别,支持来自web的远程图像

它规定:

向Cocoa Touch框架添加web图像和缓存管理的
UIImageView
类别

异步图像下载程序

具有自动缓存过期处理的异步内存+磁盘映像缓存

背景图像解压缩

保证同一URL不会被多次下载

保证伪造的URL不会被一次又一次地重试

保证主线程永远不会被阻塞

表演!
使用GCD和ARC这是iOS开发中的一个经典问题,我以前写过一个类,它使用的是NSOperationQueue——现在GCD可能更好

您想访问联机映像:

  • 首先,你试着点击图片中的图片(用键,也许是url) 内存缓存,但未命中
  • 第二,您尝试在磁盘中查找映像,但再次丢失
  • 然后,您应该使用GCD异步下载在线映像 或者其他一些方法
  • 成功下载图像后,将其显示在 UIImageView,并将其缓存在内存中,然后将其写入磁盘 供将来使用
  • 一些示例代码:

    - (void)downloadImage:(NSDictionary *)info
    {
        /* HOWTO: Prevent Downloading the same url many times */
        /* Keep the download task one by one ? */
    
        NSString *url = [info objectForKey:@"url"];
        NSURL *imageUrl = [NSURL URLWithString:url];
        UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];
    
        if (image) {
            id theDelegate = [info objectForKey:@"delegate"];
            if ([theDelegate respondsToSelector:@selector(imageDownloader:didFinishWithImage:)]) {
                [theDelegate imageDownloader:self didFinishWithImage:image];
            }
    
            [cacheQueue cacheImage:image withKey:url];
        } else {
    #ifdef DEBUG
            NSLog(@"Failed to download : %@\n", url);
    #endif
        }
    }
    

    使用。对于图像数据缓存来说,它是最好的,也很容易

    到目前为止,您编写了哪些代码(用于保存图像)?在这里发布。任何类似于mac osxTry的东西也可以是SmartStorage()。它会自动将UIImage/NSData存储在磁盘或内存中。它很聪明。