我有ViewController
我希望UITableView
包含5-30个用户个人资料(姓名,个人资料照片,关于我等),它是TabController
中的一个标签。配置文件内容很少更改,但每周一次,添加/删除一些配置文件。
配置文件内容以我们服务器中的json
对象的形式出现,我将其解析为[[String:Anyobject]]
数组。
其中一个字段包含配置文件图片的URL(每个字段仅30kb)。
我的问题是:获取图片并在电视中显示这些图片的最佳模式是什么?
首先,我猜我最好只做一个网址请求,而不是30个人。我怎么能做到这一点?示例配置文件图像的URL是:
www.example.com/assets/profileImages/useriD.png.
第二,我应该首先将图片保存到CoreData,然后从那里获取它们(如果是这样的话?)或者我应该在单元格内执行URL请求,就像我设置配置文件一样名称等?
如果有人能指出我正确的方向,那将是非常棒的,谢谢!
答案 0 :(得分:2)
除非您的服务器有这样做的方案,否则您无法在单个请求中获得多个图像。您需要为每个映像发出一个请求(尽管iOS和服务器应该合作以维护单个HTTP连接)。
你如何进行缓存取决于你,但是:
您可以简单地依赖iOS缓存(前提是文件具有适当的Cache-Control
/ Expires
标头),通过在您的缓存中设置适当的缓存策略,可能会更加坚持使用缓存NSURLRequest
(例如ReturnCacheDataElseLoad
)
您可以在解码图像的应用程序中添加一些本地缓存(UIImage
)。视图控制器中的简单NSDictionary
应该足够
您可以将图像(编码数据)存储在磁盘上。如果这样做,您可能希望使用诸如SDWebImage
之类的库,而不是重新发明轮子。 SDWebImage
的文档包含大量示例,包括UITableView示例。
您可以将图像(编码数据)存储在核心数据中,但它们的大小并不能成为理想的候选对象。
答案 1 :(得分:1)
cellForRowAtIndexPath
中为每个UIImage
添加网址链接,其余部分由SDWebImage处理。