【问题标题】:Saving fetched data on disk将获取的数据保存在磁盘上
【发布时间】:2011-03-22 15:13:16
【问题描述】:

我正在创建一个 iPhone 应用程序,它每次启动时都会从服务器获取信息。但是,我打算使用上个月/几个月/一年的获取数据来计算一些平均值。

我一直在考虑使用字典(将日期与值关联)将它们保存到 NSUserDefaults,但我只记得还存在诸如核心数据之类的东西。看到我对核心数据没有任何经验,不知道是不是更好。如果它不会,我可以保存 否则我会用它来学习它。

数据采用 XML 格式,每次我都会得到几组相同的响应(针对地图上的不同位置)。集合的数量可以改变,因为用户可以添加更多位置。我目前仅在下次启动加载失败时将原始数据保存到磁盘以进行加载。但是,我还想以一种我可以轻松访问它的方式从该 XML 中保存一些特定的值。最好的方法是什么?

编辑:我实际上还需要知道核心数据的速度/效率。我目前正在使用 NSDictionaries 为该会话期间的数据集传递 NSArrays。对于保存比会话核心数据持续时间更长的数据是理想的,我发现了很多(只需要找到一种将实体与日期关联的好方法),我只需要一些关于效率的建议。

【问题讨论】:

    标签: iphone objective-c database core-data nsuserdefaults


    【解决方案1】:

    如果您要处理大量数据,那么尝试一下 Core Data 可能会更好,毕竟它没有那么复杂,并且有很多很好的教程可供您学习。存储类型有不同的设置,您可以使用 sqlite 数据库或 xml 文件。

    根据 Apple 人员的说法,与自制解决方案相比,使用 Core Data 应该是快速且内存有效的,因此它是首选方式。

    【讨论】:

      【解决方案2】:

      核心数据将更容易操作数据和使用谓词查询数据。 Core Data 支持日期,因此您甚至可以在日期范围内查找项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-12
        • 2010-11-29
        • 1970-01-01
        相关资源
        最近更新 更多