我有一個選擇器,更新我的sqlite(FMDB框架)數據庫fillTopXTraps
。 當我調用選擇器更新2個獨立的數據庫時,它在'DataBase'類(簡稱「db」)中失敗。 而且我有這個錯誤:如何阻止選擇器被一次訪問多次?
The FMDatabase is currently in use.
多次。
我試着用打電話fillTopXTraps
:
[databaseQueue addOperation:invokeOperation];
[databaseQueue waitUntilAllOperationsAreFinished];
而且我已經出現的錯誤「數據庫被鎖定」和:
[NSOperationQueue addOperations:waitUntilFinished:]: 1 (of 1) operation is finished, executing, or already in a queue, and cannot be enqueued
我嘗試使用FMDatabaseQueue,仍然有一個錯誤「數據庫鎖定「和」...正在使用中「。
我如何確保fillTopXTraps
如果它已經被處理並且知道要等到完成然後繼續纔會繼續。 或者,也許問題是顯然從多線程調用的數據庫,我該如何解決它?
您是否使用多個FMDatabaseQueues?您應該只使用每個數據庫一個。 – ccgus
當我需要返回一些值時,我正在使用一個FMDatabaseQueue來更新/插入/刪除和FMDatabase for SELECT語句。 –