如何为我的应用程序提供预填充的核心数据数据库?

发布于 2024-11-07 21:41:02 字数 50 浏览 0 评论 0原文

我的应用程序使用核心数据,我希望内部有一些默认条目。 如何做到这一点的最佳实践是什么?

My app uses Core Data and I want some default entries to be inside.
What's best practices of how to do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

萌面超妹 2024-11-14 21:41:02

如果您已经通过临时例程加载预加载数据以在当前代码中进行测试,那么您没有理由不能使用它在模拟器目录中创建的 sqlite 文件(无需编写单独的 Mac 应用程序)。

如果您还没有填充该数据库,您仍然可以编写一个 iOS 应用程序来填充该数据库。您可能已经编写了向商店添加数据的方法,因此您也可以使用它们导入预加载数据。

无论哪种方式,您都可以从模拟器的目录中获取 sqlite 文件并将其添加到应用程序的包中;首次启动时,您将其复制到应用程序目录中的适当位置,然后再将 Core Data 指向它。如果它真的很大,缺点是捆绑包中会有一个副本,磁盘上会有另一个副本,但除了通过网络获取数据之外,您无能为力。

正如其他人所建议的,如果数据量很小,您可以在首次启动时导入它,使用您已经编写的用于添加数据作为正常应用程序工作流程一部分的方法。

If you're already loading the pre-load data via a temporary routine for testing in your current code there's no reason you can't use the sqlite file it creates in the simulator's directory (no need to write a separate Mac app).

If you're not already filling that db you can still write an iOS app that does it. Odds are you've already written the methods for adding data to your store so you can use them to import the pre-load data as well.

Either way you'd grab the sqlite file from the simulator's directory and add it to your app's bundle; on first launch you'll copy it into the appropriate place in the app's directory before pointing Core Data to it. If it's really large the downside is that there will be a copy in the bundle and another on disk, but there's not much you can do about that other than grabbing the data over the network.

As others have suggested, if the amount of data is small you can just import it at first launch, using the methods you've already written for adding data as part of the normal app's workflow.

苦笑流年记忆 2024-11-14 21:41:02

请参阅 CoreDataBooks 示例,其中包含以下示例代码首次启动时复制数据库。

编辑:我创建了一个核心数据框架(在这里阅读:http://bikepress.org/?p =1120),包括此功能。

See the CoreDataBooks example, which has sample code for copying a database at first launch.

EDIT: I've created a Core Data framework (read about it here: http://bikepress.org/?p=1120) that includes this feature.

Bonjour°[大白 2024-11-14 21:41:02

我只需创建一个数据库并将其添加到我的目标中,以便 Xcode 将其复制到应用程序包中。第一次启动时,只需将其从应用程序包复制到例如。文档目录或应用程序需要数据库的任何位置。

I would just create a database and put add it to my target so that Xcode copies it into the app bundle. At the first launch just copy it from the app bundle to eg. the documents directory or wherever your app expects the database.

雨巷深深 2024-11-14 21:41:02

应用商店中有核心数据编辑器 。或者,您可以专门为这个特定的数据库构建您自己的简单 Mac 应用程序并从那里管理它。如果默认条目的数量很小,那么您最好将其存储在 plist 或其他内容中,并在首次启动后将其加载到数据库中。

There is Core Data Editor at the app store. Alternatively you could build your own simple mac app just for this particular DB and manage it from there. If the amount of default entries is small, then you're better off storing it in a plist or something and loading it into DB after the first launch.

花开柳相依 2024-11-14 21:41:02

在 iOS 5 中,如果我将数据库文件放入资源包中,我的应用程序会被拒绝。所以,我必须从互联网下载数据库。

In iOS 5, my app was rejected if I put a database file into resource bundle. So, I have to download the database from internet instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文