2010-02-01 114 views
0

我在我的iPhone应用程序中使用SQLITE数据库。我的主屏幕上有一个刷新按钮,单击该刷新按钮时,我通常会从我的Web服务中获取数据并将其存储到我的数据库中。在正常的情况下,它工作正常,但当我经常点击我的刷新按钮4-5次我的应用程序崩溃,我的应用程序日志显示“无法打开数据库”我不知道为什么我得到这个SQLLITE错误。在SQLITE数据库中插入行数是否有限制?无法打开数据库SQLITE iPhone

回答

2

听起来好像您的应用程序正在从webservice下载数据,将其写入数据库,然后在频繁按下按钮时重复这些步骤。

根据您的应用程序的架构,您可能会尝试从不同的线程向数据库写入数据 - 这是sqlite库禁止的。

没有看到一些代码,没有办法告诉发生了什么。

理想情况下,你应该写你的数据库设置队列,并在可可/可可触摸这可以通过使用NSOperationNSOperationQueue可以轻松实现。使用这些类可以封装下载数据的行为,将其解析为模型对象并将其写入数据库,然后将其放入不同的“操作”中,然后将其放入队列中。您还可以设置依赖关系,以便一个操作在另一个操作尚未完成时不会运行。所有这些都是可配置的。

请记住,虽然使用NSOperation进入多线程世界,并且如果您在任何时候更新用户界面,您需要在主线程上执行它,因为UIKit不是线程安全的。