我正在开发一个可可应用程序,它将大量使用Web服务和标准的dbms(很可能是MySQL),我想知道是否有人对他们使用的数据库库或ORM解决方案有一个很好的选择.由于需要支持标准DBMS并且能够在正常应用程序操作之外修改数据,因此CoreData不是一个选项.
我从新的开源库中找到了许多可能的选项:http: //github.com/aptiva/activerecord/tree/master
为C MySQL api编写自己的包装器.
欢迎任何建议,
谢谢!
保罗
当我们第一次开始使用Checkout时,我们遇到了类似的问题,我们的解决方案是使用PyObjC在Python中编写整个应用程序.Checkout 1有一个sqlite后端,Checkout 2有一个postgres后端.
在Pyton方面有几个非常成熟和强大的ORM,比如SQLObject,它很容易使用(我们用它来用于Checkout 1.0)和SQLAlchemy,它更强大但有点难以包裹你的大脑(我们将它用于Checkout 2.0).
您可以评估的一种方法是在Objective-C中构建应用程序,但是在Python中编写数据模型和数据库连接/管理代码.您可以使用PyObjC从此代码创建一个插件包,然后将其加载到您的应用程序中这或多或少是我们为Checkout Server采用的方法,它使用Foundation命令行工具来管理postgres服务器及其中的数据库,这个CLI工具反过来加载一个包含所有实际数据库代码的Python插件包.最终用户主要通过"系统偏好设置"窗格与数据库进行交互,该窗格不知道数据库的外观,而是使用命令行工具与其进行交互.
加载插件很简单:
NSBundle *pluginBundle = [NSBundle bundleWithPath:pluginPath]; [pluginBundle load];
您可能需要为您希望从Obj-C代码访问的bundle中的类创建.h文件.