【问题标题】:Correct way caching data on iPhone/iPad在 iPhone/iPad 上缓存数据的正确方法
【发布时间】:2011-07-18 04:20:06
【问题描述】:

在 ios 上缓存文件和/或字符串数​​据的正确方法是什么? CoreData 对此有用吗,还是有更好的方法?

缓存性能的最佳方法是什么?对于任意数量的数据,缓存以实现持久性的最佳方法是什么?

我似乎找不到任何关于这个主题的好 Apple 文档。

【问题讨论】:

  • 你想要什么样的缓存?在内存中还是在磁盘缓存中?您的部署目标是什么?
  • 你在缓存什么样的数据?图片?应用状态?文字?
  • @kubi 图片不需要显式缓存,其他的也不例外。
  • 你缓存了多少数据?您是出于性能原因还是持久性原因进行缓存?
  • @bioffe 不正确。在能够推荐缓存策略之前了解数据量非常重要。几行文本与一百个图像文件有很大不同。

标签: objective-c xcode ios caching


【解决方案1】:

【讨论】:

  • +1 以获得令人惊讶的答案。我不知道 NSCache 在 iOS 中可用。
  • @mrthys 注意NSCache 是一个非常简单的内存缓存。如果存在应用内内存警告,它不会仅处理特定时间的缓存或清除缓存。此外,由于它是内存缓存,当应用程序关闭时缓存会消失后台。 NSCache 绝对是一个有用的工具,但实际上它只是一个NSDictionary,如果检测到来自其他应用程序的内存压力,它可以删除缓存的项目。
【解决方案2】:

这个问题有很多不同的解决方案,并且没有“正确”的方法来解决这个问题。一些流行的选项是:

Core Data - Apple 的持久性框架。非常高效,但更难。 SQLite - 快速而灵活,但很简单。 Plists - 基本上将文件写入磁盘,您必须手动读写。 NSUserDefaults - 最轻的“键值”选项。 我会鼓励你阅读所有四个,看看哪一个最适合你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 2011-09-15
    • 1970-01-01
    • 2019-01-14
    • 2017-06-03
    • 1970-01-01
    • 2016-09-09
    • 2014-05-16
    相关资源
    最近更新 更多