【问题标题】:Add downloaded resources (images) to Bundle?将下载的资源(图像)添加到 Bundle?
【发布时间】:2011-09-09 13:46:51
【问题描述】:

我正在开发一个应用程序,它是一种联系人列表。每次应用程序启动时都会更新此列表。 列表中的每个联系人都有自己的照片。此列表的一部分对于此应用程序的每个用户都是通用的。对于这一部分,我已经拥有所有需要的图片,并将它们包含在捆绑包/存档中(将发送给 Apple)。 新联系人的图片(在应用程序的生命周期内添加)从远程服务器下载(使用 ASIHTTPRequest)。但是我不知道如何轻松处理这些下载的图片。

我正在寻找一种方法将这些下载的图片添加到主包中,以便我可以使用以下方法调用它们:

+ (UIImage *)imageNamed:(NSString *)name

您对此类事情的良好做法有任何想法吗? 如果无法将新资源添加到主包中,您有什么建议?

再次感谢您的帮助!

克洛德

【问题讨论】:

  • kheraud,我有类似的情况,因为我正在下载一些图像,我想使用 imageNamed 以便它可以从缓存中受益。你找到解决办法了吗?
  • 不,我使用 imageWithContentsOfFile 制作了静态 loadImageFromBundleOrFolder。但我不对文件夹中检索到的图像使用缓存

标签: ios resources uiimage bundle resourcebundle


【解决方案1】:

您只能将文件添加到应用程序的 Documents 目录。您的 App 发布后无法修改主包。阅读有关如何写入目录的文档。

Edit_:这应该可以帮助您入门http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/StandardBehaviors/StandardBehaviors.html%23//apple_ref/doc/uid/TP40007072-CH4-SW6

【讨论】:

  • 感谢您的网址。您是否有使用“+ (UIImage *)imageNamed:(NSString *)name” 检索下载文件的标准/常用方法?我猜一个常见的机制是内置的,不需要创建它自己的一个在目录中查找...... UIImages 函数包括缓存系统,我也会从中受益。
  • 我不知道我说得对不对。但是要使用 imageNamed 检索图像,您必须将文档目录的路径附加到图像的文件名中。通过使用格式化的 NSString ([[NSString alloc] initWithFormat:@"%@%@", docDirectoryPath, imageFilename]) 并在 imageNamed: 方法调用中使用该字符串非常简单。这就是你要找的东西吗?
  • 事实上,imageNamed 函数允许有一个缓存系统来加载图像。但是,“该方法在应用程序的主包中查找具有指定名称的图像”。所以我想知道是否有办法通过下载图像来利用这个缓存系统。看来您不能将图像添加到主包中...所以,您不能使用 imageNamed 方法...所以您不能从这种方法带来的缓存系统中受益?有什么选择吗?
  • 啊,对不起,我记错了方法。使用“[UIImage imageWithContentsOfFile:filePath]”而不是 imageNamed。这将允许您从 docs 目录打开图像。
  • “此方法不缓存图像对象。”。我正在寻找一种利用缓存系统的方法。这似乎是不可能的。
【解决方案2】:

我正在为一个应用程序做类似的事情,过去我为 UIImage 使用了几个不同的类别。

对于当前版本,我正在查看https://github.com/rs/SDWebImage,但我在以前的版本https://github.com/jaanus/UIImageViewCached 中使用这个版本真的很幸运。出于我的目的,我从 URL 下载图像,然后将它们缓存以在 TableView 中使用。

HTH

【讨论】:

  • 8 个月后,我得出了同样的结论:SDWebImage 是最简单的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
相关资源
最近更新 更多