2011-10-13 51 views
1

我在使用fmdb將數據讀寫到同一個數據庫時遇到了問題。在相同的後臺線程上運行FMDB進程?

在我的應用程序中有一些實例,其中一個類將數據寫入數據庫中的後臺線程,而另一個類將從主線程上的同一數據庫讀取數據,讀取和寫入過程處理相當大的數據,幾百個NSDictionary。

我聽說fmdb不是「線程安全的」,當我嘗試讀取和寫入上述場景時,會導致應用程序崩潰。我也聽說過在同一個線程上運行2個fmdb進程的建議,這樣應用程序不會崩潰。我試過在後臺線程(使用NSInvocationOperation)中運行它們,但它崩潰了,我意識到它們實際上是在單獨的後臺線程上運行導致衝突。

所以問題是,我如何讓所有的fmdb進程在同一個後臺線程上運行,以便它們不會使我的應用程序崩潰?

還有處理我的SQL數據的任何替代品嗎?

*對不起,如果我沒有解釋清楚,願意澄清。

感謝您的閱讀!

回答

1

如果您查看FMDB的最新文檔,您將看到它們現在提供了一個允許線程安全使用FMDB的隊列。