需要使用缓冲区保存和检索UIImages

Kir*_*mar 6 objective-c uiimage ios nscache

我的应用程序是一种图片库.当用户点击图库中的图标时,需要显示图像(横向2图像,纵向1图像).图片可能超过100.我通常采用原始文件并解码为UIImage格式.如果用户想要看到另一个图像,则由于解码而花费一些时间(延迟)来显示图像.所以我想在一个单独的线程(GCD)中将一些图像保存到缓存(NSArray)中以解决此问题.

在阵列中,我可以存储5到10个图像.每次用户滑动时都需要更新.

请提出建议.

提前致谢.

小智 2

试试这个 -

    UIImage *image = [imageCache objectForKey:@"myImage"];
    if (!image)
    {
      // download image
      dispatch_async(dispatch_get_global_queue(0, 0), ^{
      NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:yourURL]];
      if (imageData)
      {
        // Set image to cache
        [imageCache setObject: [UIImage imageWithData:imageData] forKey:@"myImage"];
        dispatch_async(dispatch_get_main_queue(), ^{
        [yourImageView setImage:[UIImage imageWithData:imageData]];
       });
      }
    });
 }
 else
 {
   // Use image from cache
   [yourImageView setImage:image];
 }
Run Code Online (Sandbox Code Playgroud)