0

我必须在 Objective-C 中实现一种库,它有助于通过内省将任何对象存储在数据库中。但是我在数据库连接方面遇到了一些问题。

我在带有 Obj-C 的 iphone 上找到了一些使用 SQLite 执行此操作的教程,但在应用程序中的 OSX 上却没有。

我想提供一个Sqlite连接和一个MySql连接(满足用户的喜好)。是否可以在 Objective-C 命令行工具中执行此操作?如果是这样,怎么做?

谢谢!

4

2 回答 2

6

哇。这是一个非常大的要求;整个公司只专注于对象关系映射层。

您无法仅通过对任意对象进行自省来做到这一点。首先,在运行时没有足够的元数据来有效地序列化所有类型,更不用说将它们映射到数据库了。其次,即使有,您仍然必须处理要保留多少对象图。

您确实需要某种建模信息来具体描述要持久化的对象、它们将如何持久化以及需要持久化多少对象图。

也就是说,您实际上是在要求重新发明 EOF,CoreData 的前身,它提供了一个更通用的对象到关系映射层。

要了解您的问题,我建议阅读Enterprise Objects Framework Development Guide的前几章。

Core Data 确实提供了一个增量存储 API,可以大大简化您的实现目标,但需要您将数据层正确地建模为 Core Data 模型。

于 2013-05-16T17:59:32.020 回答
1

我不知道 MySql 但关于 sqlite,你应该使用 FMDB: FMDatabase FMDB 可以用于 iOS、MAC OSX(弧形和非弧形)这是很棒的框架。

祝你好运

于 2013-05-16T18:42:28.340 回答