我想知道为了将 SQL DB 下载到核心数据中我必须考虑什么?我不确定在格式化 SQL DB 时必须使用哪些框架,或者是否有任何特殊要求。
任何帮助、建议、教程链接将不胜感激。我已经进行了一些搜索,但很难理解事物,因为我不确定我正在寻找的内容是否正确。
我不确定我是否理解您所追求的,但也许 2 个链接会有所帮助:
Navicat是一个应用程序,可让您将数据从多种格式(Excel、xml、...)加载到 Sqlite DB 。这是将数据获取到数据库的一种简单方法。正如 David H 所提到的,您可以通过FMDB 之类的 Sqlite 包装器在不使用 Core Data 的情况下处理数据。然后您可以使用 SQL 命令访问数据。
nsscreencst.com 提供了一个完全不同的教程:Importing into Core Data是一个教程,展示了如何从 Web API 将 JSON 数据导入 Core Data。这可能与您的用例有关。不幸的是,那里的视频每月收费 9 美元,但恕我直言,他们做得非常好。
(我不隶属于上述任何一家公司)
这是不可能的——即使 Core Data 可以使用 SQLite 进行存储,也没有导入/导出。你真的有两个选择:
1)如果您有一个要在 iOS 应用程序中使用 Core Data 的数据库,那么您可以编写一个非常简单的 Mac 应用程序来与您的 SQL 存储交互,并使用您基于创建的 Core Data Schema 在 Core Data 中复制它在您的 SQL 数据库上。这样做的好处是使用 mac 应用程序测试和开发更简单。然后,您的 iOS 应用程序可以使用最终的 Core Data 存储库(通过包含 Core Data Schema)。
2) 在您的 iOS 应用程序中进行所有导入。这可能需要更长的时间来开发,但您可以将 SQL 数据库动态下载到手机中并使用 SQLite 读取它。
要导入数据,您必须从 SQLite 数据库中的每条记录创建 NSManagedObjects 对象。根据您的数据库模型的复杂性,这可能非常棘手。
Marcus Zarra 很好地介绍了如何从 JSON 创建 NSManagedObjects:https ://stackoverflow.com/a/2363996/480069 。这应该让您了解如何开始。正如马库斯所说,请注意对象图中的关系,这样在拥有复杂关系时就不会陷入循环。
也有很多很好的教程如何序列化 NSManagedObjects,所以只要给谷歌一试:NSManagedObject serialize
.