【问题标题】:Keeping a bundled realm up to date using REST使用 REST 使捆绑的领域保持最新
【发布时间】:2016-05-19 05:18:10
【问题描述】:

我有一个应用程序使用大约 5000 个条目的数据库。 该数据库作为领域文件捆绑在应用程序中。 我希望能够使用 REST 定期向该数据库更新/添加条目,并且我认为我做得对 - 我只是想确定一下。 我就是这样做的:

安装应用程序后,我将捆绑的数据库从 mainBundle 复制到 Documents 目录以进行读/写访问。然后我从 mainBundle 中删除数据库。

当我向数据库更新/添加新条目时,它们会使用 REST 推送给用户并插入到位于 Documents 目录中的数据库中。

当应用程序发布更新时,我会检查数据库是否已存在于 Documents 文件夹中 - 如果存在,我会自动删除 mainBundle 中的数据库,因为它不需要。

我在正确的轨道上吗?有没有更好的方法?

感谢任何意见!

问候, 埃里克

【问题讨论】:

    标签: ios swift rest realm


    【解决方案1】:

    当我向数据库更新/添加新条目时,它们会使用 REST 推送给用户并插入到位于 Documents 目录中的数据库中。

    从技术上讲,您不能通过 REST 推送。所以我想,您要么向所有安装发送后台推送通知,要么在应用程序启动时检查是否有可用的新版本数据库。这至少是我的建议,但您获取新数据的要求可能会有所不同。

    当应用程序发布更新时,我会检查数据库是否已存在于 Documents 文件夹中 - 如果存在,我会自动删除 mainBundle 中的数据库,因为它不需要。

    这不起作用。主包是签名的应用包。如果您篡改内容,则会阻止您的应用程序启动。出于这个原因,对它的访问被操作系统限制为只读。所以这个操作总是会失败并出现错误。相反,您可能只想跳过从主包中为数据库播种。

    【讨论】:

    • 感谢您的回复。是的,那个措辞是错误的。我定期检查将应用程序的数据库版本号发送到我的服务器,返回的 json 包含具有更高版本号的所有项目。然后将最高版本号保存到应用程序中。啊,有道理。所以没有办法捆绑一个数据库,然后在没有数据库副本的情况下更新它?
    • 我无意吹毛求疵,只是检查一下您是否清楚它是如何实现的。 :) 但是,是的,在那个用例中有一些不可避免的重复是正确的。费用可能会根据平均条目的大小进行协商,因此您可能更喜欢捆绑领域文件来为您的用户保留无缝的用户体验,而无需在首次使用时预先等待时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多