【问题标题】:Strategy to cache / persist downloaded images in iPhone App在 iPhone App 中缓存/持久化下载图像的策略
【发布时间】:2012-07-14 21:46:32
【问题描述】:

我的应用需要从我正在维护的在线 MySQL 数据库下载大约 50 张图片。我知道我可以使用(例如)控制它们的缓存方式:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:aURL] 
                                         cachePolicy:NSURLRequestReturnCacheDataElseLoad 
                                     timeoutInterval:30.0];


但是:
1) 使用此缓存策略是否意味着图像在第一次下载后将真正永远保留在用户的设备上?或者,
2)我最好自己手动将它们保存到应用程序的 Documents 文件夹(也许同时将数据库写入那里以在线镜像)以确保它们的持久性 - 这样我就可以从那里加载它们(设备的 Documents 文件夹)从那时起,在应用程序的所有后续运行中?

基本上只需要建议在初始下载后将图像保存在用户设备上的最佳方式 - 所以用户总是有一些东西可以查看,以防连接问题阻止他们获取任何东西新图像已添加到在线数据库中。

任何和所有的建议都将受到高度赞赏。

【问题讨论】:

    标签: iphone objective-c image caching download


    【解决方案1】:

    NSURLCache 使用内存和磁盘缓存来下载请求。我记得在 iOS 5 之前存在导致 SDURLCache 等独立库的问题,但我认为不再需要它们了。

    即使有磁盘缓存,当设备上的空间不足时,它仍可能被 iOS 清除。如果您不希望发生这种情况,您可以自己将图像存储在 Documents 文件夹中……但这种情况正是 Caches 目录的用途。您下载图像,除非设备空间不足,否则它们会一直存在,在这种情况下,它们会根据需要被清除并重新下载。如果我是该应用程序的用户,我更喜欢这种行为,而不是永久占用磁盘空间来存储可以轻松从网络恢复的内容。

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多