iOS中数据库连接的首选方式

时间:2012-11-20 18:00:48

标签: mysql ios cocoa-touch sqlconnection

我是初学者iOS开发人员,我正在尝试构建一个CRM系统来学习开发的不同方面。

我对连接外部SQL服务器的首选方法有疑问。顺便说一句,我正在使用Karl Krafts的Obj-C MySQL连接器。 现在我在我的应用程序委托(didFinishLaunchingWithOptions)中初始化数据库控制器(然后创建,然后空闲连接到服务器)对象,这给了我一些不必要的副作用..屏幕很长时间处于黑色状态启动如果与数据库的连接速度很慢,有时应用程序“太快”,并且查询在连接完全建立之前尝试执行 - 导致抛出异常。

我想要的行为(并且猜测是首选)是GUI首先加载,然后在后台线程中建立DB控制器和连接的初始化 - 在获取数据时更新GUI。

我将如何实现这一目标?我已经尝试了很多不同的方法,我在我的研究中发现,dispatch_queues并直接从viewDidLoad等启动它,但没有一个给我所需的“GUI然后数据” - 效果。

此外,在程序会话期间是否优先使用空闲连接 - 或者每个查询都应该“连接 - 做它的事情 - 断开连接”?

问候,克里斯托弗

1 个答案:

答案 0 :(得分:2)

诫命一:不要在主线程上进行网络连接 - 它是为UI保留的。否则,您的应用程序将具有滞后和冻结的UI。

诫命二:使用异步调用(GCD,后台线程等),事件和回调,而不是大量的顺序同步调用。 Cocoa(Touch)的设计考虑到了这一点,因此很容易做到。

诫命三:如果您自动启动某些内容,请在应用完全就绪时启动它。让对Web服务的调用成为application:didFinishLaunchingWithOptions:中的最后一个。更好的是,让用户可以通过用户操作启动登录,即。即按“登录”按钮。

诫命四:再次阅读前三条诫命并记住它们。练习它们,直到你了解它们为止。