我必须在 Objective-C 中实现一种库,它有助于通过内省将任何对象存储在数据库中。但是我在数据库连接方面遇到了一些问题。
我在带有 Obj-C 的 iphone 上找到了一些使用 SQLite 执行此操作的教程,但在应用程序中的 OSX 上却没有。
我想提供一个Sqlite连接和一个MySql连接(满足用户的喜好)。是否可以在 Objective-C 命令行工具中执行此操作?如果是这样,怎么做?
谢谢!
我必须在 Objective-C 中实现一种库,它有助于通过内省将任何对象存储在数据库中。但是我在数据库连接方面遇到了一些问题。
我在带有 Obj-C 的 iphone 上找到了一些使用 SQLite 执行此操作的教程,但在应用程序中的 OSX 上却没有。
我想提供一个Sqlite连接和一个MySql连接(满足用户的喜好)。是否可以在 Objective-C 命令行工具中执行此操作?如果是这样,怎么做?
谢谢!
哇。这是一个非常大的要求;整个公司只专注于对象关系映射层。
您无法仅通过对任意对象进行自省来做到这一点。首先,在运行时没有足够的元数据来有效地序列化所有类型,更不用说将它们映射到数据库了。其次,即使有,您仍然必须处理要保留多少对象图。
您确实需要某种建模信息来具体描述要持久化的对象、它们将如何持久化以及需要持久化多少对象图。
也就是说,您实际上是在要求重新发明 EOF,CoreData 的前身,它提供了一个更通用的对象到关系映射层。
要了解您的问题,我建议阅读Enterprise Objects Framework Development Guide的前几章。
Core Data 确实提供了一个增量存储 API,可以大大简化您的实现目标,但需要您将数据层正确地建模为 Core Data 模型。
我不知道 MySql 但关于 sqlite,你应该使用 FMDB: FMDatabase FMDB 可以用于 iOS、MAC OSX(弧形和非弧形)这是很棒的框架。
祝你好运