使用MGTwitter为用户获取和缓存配置文件图像的最有效方法是什么?
我们目前的问题是必须调用getUserInformationFor
来获取图像的网址,然后getImageAtURL
导致两次调用服务器。目前,我们只需要图像信息,因此其冗余必须下载所有其他信息。请记住,我们可能会同时执行20-30个这样的调用(例如,获取用户个人资料图片列表),这会变得非常慢。
其次,缓存该图像的最有效方法是什么,以便不必每次都下载(我们不介意假设配置文件图像永远不会改变),目前我们只是使用Twitter用户名作为文件名写入NSTemporaryDirectory(),然后为每个Twitter请求检查该目录中是否存在文件名。是否有更好,更有效的方法?
答案 0 :(得分:0)
如果您想要在MGTwitterEngine可用功能范围之外做一些事情,您可能不得不使用原始Twitter API。请尝试this页面寻求帮助。
缓存应该可以在NSCachesDirectory
中完成。它的生命周期可能比NSTemporaryDirectory
长,并且是存储缓存数据的推荐位置。在这种情况下,效率可能意味着下载一次,存储图像,以便您以后可以轻松识别它,确定它是否存在并确定是否需要下载。
答案 1 :(得分:0)
我会使用NSURLConnection(或ASIHTTPRequest)编写我自己的代码,从推文NSDictionary中指定的URL下载配置文件图像。
将下载的图像保存在缓存目录中。 文件名应类似于< username> .png (来自Twitter的所有图片通常都是png)。这样,在缓存中查找图像不需要NSDictionaries来存储所有图像名称。
我还建议添加用户控制的此缓存清算,因为它可能会增长到大尺寸,如果用户更改配置文件图像,则可能会出现不准确。
当缓存的图片为两天且用户使用WiFi时,可以重建缓存。