многопоточность sqlite3 в объективе c

Я запускаю фоновый поток в моем приложении с dispatch_async, и несколько раз мой основной поток и фоновый поток одновременно обращались к базе данных, и это давало мне ошибку базы данных, и я пытался ее решить, используя sqlite3_threadsafe (), который всегда возвращался 2 т.е. я не могу использовать одно и то же соединение с базой данных в двух потоках, и я хочу, чтобы он вернулся 1 может кто-нибудь мне помочь в этом отношении

Я думаю, вы идете неправильно. SQLite не является надежным потокобезопасным независимо от того, как вы его скомпилируете – см. FAQ . Даже если SQLite скомпилирован для обеспечения безопасности потоков, одна и та же база данных не может использоваться из нескольких потоков, если какие-либо транзакции ожидаются или какие-либо заявления остаются незавершенными.

Вышеупомянутые рекомендации по использованию Grand Central Dispatch для перенаправления всех запросов SQLite в очередь последовательной отправки – это правильный путь, на мой взгляд, хотя я бы скорее рекомендовал вам создать свою собственную очередь, а не использовать основную очередь для простую причину, по которой вы можете надежно отправлять dispatch_sync, когда хотите ждать результата.

Вы можете добавить все свои операторы доступа, поэтому вы всегда находитесь в главном потоке при доступе к хранилищу sqlite.

dispatch_async(dispatch_get_main_queue(), ^ { //code goes here }); 
  • Как обращаться с несколькими потоками для доступа к sqlite3 с отсутствием dblocked error
  • как добавить столбец в таблице sqlite в SWIFT
  • Можно ли удалить файл WAL в sqlite?
  • Как обновить данные на сервере db через json api?
  • Использовать имя столбца вместо номера с sqlite3_column_text
  • Не удалось создать базу данных SQLite3 с защитой файлов в iOS
  • Автономный кеш в приложении iOS sqlite3 становится поврежденным
  • В чем разница между libsqlite3.dylib и libsqlite3.0.dylib?
  • sqlite шаг назад
  • добавить файл Seperate .sqlite в проект ios
  • Как добавить и выполнить .sql-файлы в моем проекте iOS?
  • Interesting Posts

    Установите для фона NavigationBar сплошной цвет

    Как я могу перемещать файлы и папки с помощью git в Xcode 4?

    xCode 9, Карфаген. Ошибка подключения iTunes: «Недействительный пакет – запрещенная аппаратура LLVM»

    Jenkins – Работает сценарий сборки кода Xcode

    Кордова getDirectory возвращает код ошибки

    Подчеркивать текст в UILabel в моноточе (портировать код ObjC)

    FCM дает внутреннюю ошибку сервера после обновления сертификата APN push

    Отклонение ViewControll вверх вместо вниз

    Xcode 7 нашел место, где он печатает строку с ошибкой журнала

    ios встроен в изображения UIBarButtonSystemItem

    Предупреждения «Прямое сравнение строкового литерала» с момента последнего обновления Xcode

    Как отключить кеширование из NSURLSessionTask

    Не получать выходные данные при создании UITextView программно в Swift

    Не удалось найти приложение у указанного приложения xamarin ios Director

    Исключить файлы / строки кода в Xcode 7 Code Coverage

    Давайте будем гением компьютера.