我正在开发 cocoa 应用程序,它将大量使用Web服务和标准dbms(很可能是MySQL),并且我想知道是否有人对他们使用的数据库库或ORM解决方案有很好的选择。由于需要支持标准DBMS并能够在常规应用程序操作之外修改数据,因此不能选择CoreData。

我从新的开源库中发现了许多可能的选项:
http://github.com/aptiva/activerecord/tree/master

为C MySQL API编写自己的包装器。

欢迎任何建议,

谢谢!

保罗

最佳答案

刚开始使用Checkout时,我们遇到了类似的问题,我们的解决方案是使用PyObjC用Python编写整个应用程序。结帐1具有sqlite后端,结帐2具有postgres后端。

Pyton方面有一些非常成熟且功能强大的ORM,例如SQLObjectSQLAlchemy,它很容易使用(我们在Checkout 1.0中使用了它),而ojit_a则功能更强大,但是很难使您的大脑(我们将其用于Checkout 2.0)。

您可以评估的一种方法是在Objective-C中构建应用程序,但是用Python编写数据模型和数据库连接/管理代码。您可以使用PyObjC从此代码创建一个插件包,然后将其加载到您的应用程序中。这或多或少是我们为Checkout Server所采用的方法,该方法使用Foundation命令行工具来管理Postgres服务器及其中的数据库,此CLI工具反过来会在其中包含所有实际数据库代码的Python插件包中加载。最终用户通常通过“系统偏好设置” Pane 与数据库进行交互,该 Pane 不知道数据库的外观,而是使用命令行工具与数据库进行交互。

加载插件很简单:

NSBundle *pluginBundle = [NSBundle bundleWithPath:pluginPath];
[pluginBundle load];

您可能需要为要从Obj-C代码访问的包中的类创建.h文件。

关于objective-c - 良好的 cocoa 开发数据库/ORM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/310479/

10-10 00:11
查看更多