2011-10-13 53 views
1

我在使用fmdb将数据读写到同一个数据库时遇到了问题。在相同的后台线程上运行FMDB进程?

在我的应用程序中有一些实例,其中一个类将数据写入数据库中的后台线程,而另一个类将从主线程上的同一数据库读取数据,读取和写入过程处理相当大的数据,几百个NSDictionary。

我听说fmdb不是“线程安全的”,当我尝试读取和写入上述场景时,会导致应用程序崩溃。我也听说过在同一个线程上运行2个fmdb进程的建议,这样应用程序不会崩溃。我试过在后台线程(使用NSInvocationOperation)中运行它们,但它崩溃了,我意识到它们实际上是在单独的后台线程上运行导致冲突。

所以问题是,我如何让所有的fmdb进程在同一个后台线程上运行,以便它们不会使我的应用程序崩溃?

还有处理我的SQL数据的任何替代品吗?

*对不起,如果我没有解释清楚,愿意澄清。

感谢您的阅读!

回答

1

如果您查看FMDB的最新文档,您将看到它们现在提供了一个允许线程安全使用FMDB的队列。