在iOS App更新期间真的发生了什么?

时间:2011-12-13 21:42:44

标签: ios caching

我有一个简单的应用程序,可以从Web服务下载一些数据并将其显示在tableviews中。为了允许脱机访问,应用程序将此数据缓存在设备本身的缓存目录中。我保留了所有缓存文件的列表以供参考,并将其保存到缓存目录中。因此,在完成所有下载后,我有以下文件:

XMLFileList
XML1
XML2
...

我几周前推出了这个应用程序,并且必须根据需要发布一些小的更新来修复一些小错误。但是,当用户在其设备上更新应用时,他们似乎不再看到下载的资源。我已经设法在开发设备上实现这一点,通过应用商店更新,然后加载调试版本,并确定以下问题

它似乎没有在下载的文件中显示数据,因为它们不再存在。它也不会重新下载文件,因为它们显示在已保存的列表中。这提供了一个相当有趣的问题:为什么缓存的XML文件被删除,而不是主列表?

在应用更新过程中,我可以考虑的具体情况是什么,或者重现以确保不会继续发生这种情况?

2 个答案:

答案 0 :(得分:2)

如果您将文件放入/ Library / Caches(或其他任何内容),则无法保证下次运行应用时这些文件会存在。然而,你放入/ Documents的任何东西都会存在。事实上,/ Documents中的任何内容也将备份到iCloud(除非您在iOS 5.0.1中设置了新的可用于选择退出/ Documents中的文件的位。)

无论如何,重点是你应该阅读Apple的文档,了解你应该把文件放在哪里。 (我搜索了正确的引用失败了;虽然之前我已经看过它了。)归结为:用户生成的任何东西都应该进入/ Documents,任何可以从服务器重新获取的东西都应该进入/库/缓存可以通过操作系统清除

答案 1 :(得分:0)

不保证缓存目录内容。但我没有看到任何文件保证整个目录将被立即清除。 (也许只有最大和/或最古老的内容或某些内容?)