【问题标题】:best way to cache image url from my webservice?从我的网络服务缓存图片网址的最佳方法?
【发布时间】:2013-10-01 08:47:34
【问题描述】:

我已经实现了一个 ARC 格式的应用程序。但我想在库的缓存文件夹中缓存一些图像 url。 有什么想法吗?

提前致谢。

【问题讨论】:

标签: ios objective-c web-services caching


【解决方案1】:

希望对你有帮助。我的所有项目都使用SDWebImage

使用:

添加您的视图控制器:#import "UIImageView+WebCache.h"

[yourImageView setImageWithURL:[NSURL URLWithString:@"ImageUrl"]];

您需要将 MapKit 和 ImageIO 添加到项目中。如果你没有添加

这样做:

  1. 点击 Xcode 中项目导航器顶部的项目

  2. 选择“构建阶段”选项卡。

  3. 打开“Link Binary with Libraries”框。

  4. 点击“+”。
  5. 添加 MapKit 和 ImageIO 框架。

【讨论】:

  • 我这样做了,但是在我的 ARC 代码中,整个 sdwebimage vie 类被放置为 ARC 标志,例如:"-fno-objc-arc" 在 bulit 阶段。但是直到现在出现错误在此类中 --> ** #import "SDWebImageCompat.h"** 错误是:SDWebImage 仅是 ARC。为项目打开 ARC 或使用 -fobj-arc 标志。但我已经在构建阶段文件中添加了标志。如何解决ARC代码中的这个错误,请给出解决方案?
  • SDWebImage 是 ARC,但您使用 -fno-objc-arc 将文件标记为无 ARC
  • 那么 SDWebimage 的 ARC 类需要做什么?
【解决方案2】:

你可以NSURLCache,实际上在使用NSURLConnection时会默认使用。

另一个选项是使用NSCache,它是专门为缓存对象而构建的,当系统需要更多内存时,它会自动释放它持有的任何对象。它的工作原理与NSDictionary 大致相同。

在某个地方创建NSCache 的共享实例,然后执行以下操作:

UIImage *image = [self.imagaeCache objectForKey:urlString];
if (!image) {
    // load the image from the URL
}

记得把下载的图片添加到缓存中:

[self.imagaeCache setObject:image forKey:urlString];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2020-05-19
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多