Я использую FMDatabaseQueue, чтобы иметь возможность работать с fmdb с помощью GCD. Но GCD не помогает.Приложение для блокировки FMDB при запуске выполнения запроса на обновление
Когда я пытаюсь выполнить любой запрос на выполнение выполнения несколько раз за один момент, я заморозил приложение.
Для повышения производительности я сделал - сложный запрос, чтобы уменьшить количество запросов - использовать начать и фиксации транзакции - использование setShouldCacheStatements Но НИЧЕГО помощь
Вот некоторые из примеров кода Func complexQuery (SQLQuery : String) -> Bool {
var result = false
self.databaseQueue.inDatabase() { database in
database.setShouldCacheStatements(true)
database.beginTransaction()
result = database.executeStatements(sqlQuery)
database.commit()
}
возможно, вам стоит «закрыть» и «открыть» вашу 'FMDatabase'. Пожалуйста, проверьте это http://stackoverflow.com/a/18216818/1866077 – arthankamal
Просьба пояснить «Я заморозил приложение». Приложение полностью зашло в тупик? Или просто на мгновение остановитесь, выполняя множество обновлений в другом потоке. Как долго мы здесь говорим? Кроме того, сколько обновлений вы делаете в 'sqlQuery'? Было ли «результат» успешным завершением? – Rob
Я просто «замолчу мгновенно, делая много обновлений в другом потоке», зависает. Это около 4000 обновлений в 3 запросах. Результат успешный. Спасибо – Svitlana