【问题标题】:Initialize Core Data With Default Data使用默认数据初始化核心数据
【发布时间】:2012-01-06 08:24:31
【问题描述】:

我有一个关于用数据填充核心数据的基本问题。我正在构建一个应用程序,它将在地图上显示 ATM。我想使用预加载的数据库发布应用程序,但让用户可以选择在启动应用程序时接收更新。我正在考虑使用属性列表进行更新。基本上发送所有 ATM 的 plist,解析该 plist 并填充 sqlite。我将在属性列表文件中有大约 7000 个条目,每个条目包含 5-6 个带有短字符串值的键。但根据 Apple iOS 开发者库:

您可以创建一个属性列表——或其他一些基于文件的 表示——数据,并将其存储为应用程序资源。 当你想使用它时,你必须打开文件并解析 表示创建托管对象。你不应该使用这个 iOS 上的技术,并且仅在 Mac OS X 上绝对必要时。 解析文件以创建存储会产生不必要的开销。它是 离线创建一个核心数据存储并使用它要好得多 直接在您的应用程序中。

我应该仍然发送一个属性列表,还是应该考虑另一种解决方案来更新应用程序的数据库?

附:我正在考虑使用 Rails 应用程序提供更新 - 基本上是发送一个 plist 文件。

【问题讨论】:

    标签: ruby-on-rails ios sqlite core-data plist


    【解决方案1】:

    几个月前我遇到了几乎相同的问题,我进行了相当多的搜索以找到一个不错的简单答案,但未能找到它,最终确定了一个自己动手的解决方案,这比我花费了更多时间本来希望的,但至少对学习理解核心数据很有帮助。

    基本上,解决方案是编写一个小实用程序来解析我的源数据(对我来说,它是一个逗号分隔的文本文件,使用非常方便的 'cCSVParse' 库 - http://michael.stapelberg.de/cCSVParse 进行解析)并将其插入到 Core Data Managed对象,然后将其保存为 sqlite 持久存储。然后 sqlite store(s) 可以与应用程序一起提供,并由用户在购买更多数据时上传。

    您可以将 plist(或其他)的转换写入应用程序本身的核心数据表示,但如果数据只是以某种核心数据形式在其余下的日子里继续存在,为什么不让您的强大开发人员在将数据发送给用户之前,box 会完成繁重的工作,而不是将数据发送到手机并让它完成工作?

    【讨论】:

    • 我同意你的看法。这是应用程序功能和数据库的具体用途的问题。
    猜你喜欢
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2011-05-24
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多