我开始研究一个应用程序,它会在很多地方包含每次用户要求查看时我将从服务器下载的数据。然后,当用户在没有任何互联网连接的情况下再次打开应用程序时,app应该让他查看以前下载的任何内容,只需从缓存中加载它即可。关键是内容不时变化,如果用户无法连接到服务器,用户需要能够看到上次下载的版本。
问题是,我可以在磁盘上将缓存设置为特定大小,但无论大小如何,我都必须存储所有内容。我想我必须设置缓存磁盘大小,以便在空间不足时使其更大。有什么好办法呢?
P.S。不确定这是否相关,但我正在考虑为此项目尝试AFNetworking(之前我使用过ASIHTTPRequest)。
答案 0 :(得分:3)
如果您使用NSURLCache
作为磁盘缓存,则可以使用currentDiskUsage
检查磁盘使用情况。如果此值接近diskCapacity
,您可以使用setDiskCapacity
增加它。您应该在之前执行此检查尝试写入缓存。
答案 1 :(得分:1)
我曾经在同一类型的项目上工作,我使用了AFNetworking,据我所知,将数据存储在本地数据库中是更好的选择,然后缓存它......当用户启动应用程序时,只需要一个服务调用只检查数据库版本。如果旧版本替换数据库并通过显示旧版本来处理网络失败的情况。