2011-06-06 76 views
3

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

我正在寻找一种方式将这些下载的图片添加到主束,所以我可以用打电话给他们:

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

你有没有对这种事情的良好做法的任何想法? 如果新资源无法添加到主包中,您的建议是什么?

再次感谢您的帮助!

kheraud

+0

kheraud,我有类似的情况,因为我是下载一些图片,我想用imageNamed这样才有利于缓存。你有没有想出一个解决方案? – dqa 2011-08-10 17:17:57

+0

不,我使用imageWithContentsOfFile创建了静态loadImageFromBundleOrFolder。但我不使用缓存来检索文件夹中的图像 – iwalktheline 2011-08-10 17:22:36

回答

1

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

Edit_:这会帮助你上手http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/StandardBehaviors/StandardBehaviors.html%23//apple_ref/doc/uid/TP40007072-CH4-SW6

+0

感谢您的网址。你有使用“+(UIImage *)imageNamed:(NSString *)name”来检索下载文件的标准/常用方法吗?我想一个普通的机制是内置的,不需要创建它自己的目录寻找... UIImages功能包括缓存系统,我也会受益。 – iwalktheline 2011-06-06 19:55:49

+0

我不知道我是否正确。但要使用imageNamed检索图像,必须将文档目录的路径附加到图像的文件名。这非常简单,通过使用格式化的NSString([[NSString alloc] initWithFormat:@“%@%@”,docDirectoryPath,imageFilename]),并在imageNamed:方法调用中使用该字符串。那是你在找什么? – 2011-06-06 20:01:43

+0

实际上,imageNamed函数允许为图片加载一个缓存系统。但是,“该方法在应用程序的主包中查找具有指定名称的图像”。所以我想知道是否有一种方法可以利用下载的图像从这个缓存系统中受益。看来你不能将图像添加到主包...所以,你不能使用imageNamed方法...所以你不能'利用这种方法带来的缓存系统?任何选择? – iwalktheline 2011-06-06 20:06:51

1

我在做类似的事情,一个应用程序,并在过去,我已经使用了夫妇的UIImage不同类别的。

对于当前版本,我正在寻找https://github.com/rs/SDWebImage,但是我在这之前版本https://github.com/jaanus/UIImageViewCached中使用这个版本的确很好。为了我的目的,我从URL下载图像,然后缓存它们以用于TableView。

HTH

+1

8个月后,我得出了同样的结论:SDWebImage是最简单的解决方案。 – iwalktheline 2012-01-27 14:30:20