将获取的数据保存在磁盘上
Posted
技术标签:
【中文标题】将获取的数据保存在磁盘上【英文标题】:Saving fetched data on disk 【发布时间】:2011-03-22 15:13:16 【问题描述】:我正在创建一个 iPhone 应用程序,它每次启动时都会从服务器获取信息。但是,我打算使用上个月/几个月/一年的获取数据来计算一些平均值。
我一直在考虑使用字典(将日期与值关联)将它们保存到 NSUserDefaults,但我只记得还存在诸如核心数据之类的东西。看到我对核心数据没有任何经验,不知道是不是更好。如果它不会,我可以保存 否则我会用它来学习它。
数据采用 XML 格式,每次我都会得到几组相同的响应(针对地图上的不同位置)。集合的数量可以改变,因为用户可以添加更多位置。我目前仅在下次启动加载失败时将原始数据保存到磁盘以进行加载。但是,我还想以一种我可以轻松访问它的方式从该 XML 中保存一些特定的值。最好的方法是什么?
编辑:我实际上还需要知道核心数据的速度/效率。我目前正在使用 NSDictionaries 为该会话期间的数据集传递 NSArrays。对于保存比会话核心数据持续时间更长的数据是理想的,我发现了很多(只需要找到一种将实体与日期关联的好方法),我只需要一些关于效率的建议。
【问题讨论】:
【参考方案1】:如果您要处理大量数据,那么尝试一下 Core Data 可能会更好,毕竟它没有那么复杂,并且有很多很好的教程可供您学习。存储类型有不同的设置,您可以使用 sqlite 数据库或 xml 文件。
根据 Apple 人员的说法,与自制解决方案相比,使用 Core Data 应该是快速且内存有效的,因此它是首选方式。
【讨论】:
【参考方案2】:核心数据将更容易操作数据和使用谓词查询数据。 Core Data 支持日期,因此您甚至可以在日期范围内查找项目。
【讨论】:
以上是关于将获取的数据保存在磁盘上的主要内容,如果未能解决你的问题,请参考以下文章
C# Winform 每 10 秒从 API 获取数据并保存在文件夹中
python-requests可以直接获取url到磁盘上的文件句柄,比如curl吗?