【问题标题】:MGTwitterEngine - efficient way to get and cache profile imagsMGTwitterEngine - 获取和缓存个人资料图像的有效方法
【发布时间】:2011-01-05 20:25:38
【问题描述】:

为使用 MGTwitter 的用户获取和缓存个人资料图片的最有效方法是什么?

我们目前的问题是必须调用getUserInformationFor 来获取图像的url,然后getImageAtURL 导致两次调用服务器。目前,我们只需要图像信息,因此必须下载所有其他信息是多余的。当您记住我们可能一次执行 20-30 次这样的调用时(例如,获取用户个人资料图像列表),这会变得非常慢。

其次,缓存该图像的最有效方法是什么,以便不必每次都下载它(我们不介意假设个人资料图像永远不会改变),目前我们只是使用 Twitter 用户名作为文件名写入 NSTemporaryDirectory(),然后为每个 Twitter 请求检查文件名是否存在于该目录中。有没有更好、更有效的方法?

【问题讨论】:

    标签: iphone caching twitter


    【解决方案1】:

    如果您希望做一些超出 MGTwitterEngine 可用功能范围的事情,您可能必须使用原始 Twitter API。尝试this 页面寻求帮助。

    缓存可能应该在NSCachesDirectory 中完成。它的生命周期可能比NSTemporaryDirectory 更长,并且是存储缓存数据的推荐位置。在这种情况下,效率可能意味着下载一次,存储图像以便您以后轻松识别它,确定它是否存在并确定是否需要下载。

    【讨论】:

      【解决方案2】:

      我会编写自己的代码,使用 NSURLConnection(或 ASIHTTPRequest)从推文 NSDictionary 中指定的 URL 下载个人资料图片。

      将下载的图像保存在缓存目录中。 文件名应该类似于 .png(所有来自 Twitter 的图像通常都是 png 的)。这样在缓存中查找图像不需要 NSDictionaries 存储所有图像名称。

      我还建议添加一个用户控制的缓存清除,因为它可能会增长到很大,如果用户更改个人资料图像,它可能会不准确。

      当缓存的图像已经存在两天且用户使用 WiFi 时,可以重建缓存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多