您可以缓存数据以便以后离线查看吗?

时间:2012-05-09 14:45:47

标签: objective-c ios caching

我做了一个应用程序,当连接到互联网时,它从ftp服务器下载视频,pdf,图像。它目前将数据存储在文档目录中(例如,它可以是大约50mb)。它工作正常。

现在我有一种感觉,这是违反苹果的指导方针,应用程序将被应用商店拒绝,我的感觉是对的吗?

现在如果我读到的是正确的,如果这些数据存储在缓存文件夹中,我的应用程序将被允许进入应用程序商店,对吗?现在我的问题是,我可以将存储目录更改为缓存吗?在尺寸方面有限制吗?当应用程序关闭并在没有连接的时刻重新启动时,文件是否仍然可用?设备或其他应用程序可以从缓存中删除数据吗?

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

由于同样的原因,我们的应用去年被拒绝了。但是,将内容下载到缓存文件夹而不是文档就足以让它被接受。但是,有些事情要记住。

首先,这是必读:https://developer.apple.com/icloud/documentation/data-storage/

据我所知,缓存文件夹没有大小限制,因此您可以继续存储与之前在文档中相同的内容,没人会关心。另一方面,只要系统发现剩余的空间太少,系统就会清空缓存文件夹。

从文件系统编程指南:

  

[Caches文件夹]包含可根据需要重新生成的缓存数据。应用永远不应该依赖缓存文件的存在。

我在某处(不幸丢失了源代码)读到存储在缓存中的数据在会话期间保证是持久的,也就是说,从用户启动/切换到应用程序到发送到后台/终止的时间。这意味着很容易发生当您的应用程序变为活动状态时,它会找到一个完全空的缓存文件夹。你应该准备好处理它。