Вот мой сценарий,
У меня есть несколько запросов, когда я вхожу в свое приложение, и в одном из его ответов содержится более 10 000 записей.
Я использую SQLite.swift в своем проекте.
Все работает нормально, если пользователь не выходит из системы или выполняет не более 1 задачи, например, поиск или извлечение данных из базы данных. если что-то из этого происходит, приложение зависает или аварийно завершает работу.
Я использую транзакции для массовой вставки, но когда я пытаюсь получить доступ к другим данным той же таблицы, приложение зависает, пока все не будет сделано.
Я пытался использовать несколько подключений для вставки в БД, но если другое подключение использует БД, то оно заблокировано и приложение вылетает.
фатальная ошибка: "попробуй!" выражение неожиданно вызвало ошибку: база данных заблокирована: файл /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-703.0.18.1/src/swift/stdlib/public/core/ErrorType.swift, строка 54
try DataManager.con.transaction {
for index in 0 ... (entity.count - 1) {
try DataManager.con.run(table.insert(
Latitude <- entity[index]["Latitude"].string,
Longitude <- entity[index]["Longitude"].string
))
}
}
Здесь DataManager.con — одноэлементный объект.
Пожалуйста помоги.
main thread
. - person Santosh   schedule 23.07.2016