我正在开发 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,例如SQLObject和SQLAlchemy,它很容易使用(我们在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/