代码之家  ›  专栏  ›  技术社区  ›  Danil

种子/填充核心数据的最佳实践?[关闭]

  •  0
  • Danil  · 技术社区  · 4 月前

    在首次发布时,为核心数据数据库添加种子的正确方法是什么?

    我有一个带有预处理数据的sql数据库。

    我需要在应用程序首次启动时向用户提供这些数据,然后删除种子数据以释放空间。种子数据为86 MB文件。

    目前,我将此种子文件存储在项目的根目录中,并将其包含在应用程序捆绑包中,但这种方法的问题是捆绑包的大小正在增加,我无法从捆绑包中删除任何内容,因此在将种子复制到用户空间后,应用程序的大小加倍,并从捆绑包的无用种子文件中消耗额外的86mb,这让我很头疼。

    • 正如我在这里研究的那样,在运行时无法从bundle中删除任何内容
    • 我在苹果网站上只找到了几篇10年前的文章,目前为404

    我错过了什么,做错了什么?

    我不可能把种子放在后端,然后让用户下载。

    enter image description here

    1 回复  |  直到 4 月前
        1
  •  0
  •   Fattie    4 月前

    这个问题没有真正的解决方案。在实践中,你几乎总是 只需从在线文件下载启动器数据 或您的API。

    没有不可能的情况,因为用户刚刚使用互联网连接获取应用程序,所以,你知道他们有网络连接,所以只需从某个地方下载文件。


    脚注:

    让你知道,如果你是iOS新手。CoreData是苹果有史以来最没有价值和最令人困惑的系统。FWIW注意到

    1. 你可以改为使用较新的“ SwiftData 几乎同样无用和困惑 ,但至少它更现代,有着令人兴奋的不同问题

    2. 所有明智的项目 只需使用SQLite ,它是从操作系统到所有iOS手机(实际上是Android手机!)的100%内置数据库,是世界排名前五的数据库。作为一名程序员,你无论如何都需要掌握SQL。在iSO上,您只需使用 https://github.com/groue/GRDB.swift 这很琐碎。

    在过去 领域 由于CoreData是垃圾,所以它也很受欢迎,但它非常易于使用,然而,我从来没有见过使用SQLite以外的任何东西有任何意义,因为SQLite是最简单、最好的。当然,无论如何,您的所有服务器端都将是SQL。

    正如你所知,PS CoreData本身并不是一个数据库。正如苹果所说,它是一个“持久层”。

    PPS如果你只是做一个业余爱好者项目或类似项目,只需使用Firebase并同步所有内容。

    希望有帮助