Iphone 是否在同一后台线程上运行FMDB进程?

Iphone 是否在同一后台线程上运行FMDB进程?,iphone,multithreading,fmdb,Iphone,Multithreading,Fmdb,我在使用fmdb将数据读写到同一个数据库时遇到问题 在我的应用程序中,有一个类会在后台线程中将数据写入数据库,而另一个类会在主线程上从同一数据库读取数据,读和写过程都会处理相当大的数据,比如几百个NSDictionary 我听说fmdb不是“线程安全的”,当我在上面的场景中尝试读写时,它会使我的应用程序崩溃。我还听到一些建议,建议在同一个线程上运行2个fmdb进程,这样应用程序就不会崩溃 我尝试在后台线程中运行它们(使用NSInvocationOperation),但它崩溃了,我意识到它们实际上

我在使用fmdb将数据读写到同一个数据库时遇到问题

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

我听说fmdb不是“线程安全的”,当我在上面的场景中尝试读写时,它会使我的应用程序崩溃。我还听到一些建议,建议在同一个线程上运行2个fmdb进程,这样应用程序就不会崩溃

我尝试在后台线程中运行它们(使用NSInvocationOperation),但它崩溃了,我意识到它们实际上是在不同的后台线程上运行的,这导致了冲突

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

或者是否有其他方法可以处理我的SQL数据

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


谢谢你的阅读

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

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

FMDatabaseQueue是专门为这种情况而设计的:


尝试一下,如果没有意义,请告诉我。

FMDatabaseQueue是专门为这种情况设计的:

试试看,如果没有道理,请告诉我