objective-c - 您可以缓存数据以便稍后离线查看吗?

标签 objective-c ios caching

我制作了一个应用程序,当连接到互联网时,它会从 ftp 服务器下载视频、pdf 和图像。它当前将数据存储在文档目录中(例如,它可能约为 50mb)。效果很好。

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

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

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

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

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

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

来自文件系统编程指南:

[The Caches folder] Contains cached data that can be regenerated as needed. Apps should never rely on the existence of cache files.

我在某处读到(不幸的是丢失了源),存储在缓存中的数据保证在 session 期间持久存在,即从用户启动/切换到您的应用程序直到它被发送到后台/终止。这意味着当您的应用程序处于事件状态时,很容易会发现一个完全空的缓存文件夹。您应该准备好处理这个问题。

关于objective-c - 您可以缓存数据以便稍后离线查看吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10518462/

相关文章:

ios - UITableViewCells 中的 UIImageViews 正在缓存的单元格中重新创建自己

caching - 下载资源时有哪些策略可以使 Dockerfile 指令缓存失效

ios - NSPredicate 与 NSString 发生奇怪的崩溃

ios - Objective-C (iOS),使用 CIFilter 调整图像大小会产生无效输出 (UIImage)

iphone - iPhone 加速度计究竟测量什么?

c# - 在 asp.net 中以编程方式设置 "expires"http header 的值

iphone - 单击按钮时根据字母或数字顺序对 UITableView 进行排序

objective-c - 我怎样才能使 NSWindow setFrame : . 。动画 :YES] function animated down instead of up?

ios - UIPrintInteractionController (Swift) 最多可以执行多少次打印?

performance - 从 UIWebView 中删除 HTML 元素时性能糟糕