#ios #sqlite
#iOS #sqlite
Вопрос:
В документации SQLite для user_version
pragma говорится:
Прагма user_version будет получать или устанавливать значение целого числа пользовательской версии со смещением 60 в заголовке базы данных.
Что означает «целое число со смещением 60»? Я намеревался использовать эту переменную для хранения версии схемы моего приложения. Эта переменная отформатирована как 32-разрядное целое число без знака?
Ответ №1:
«целое число со смещением 60» относится к смещению байта в заголовке базы данных SQLite. Итак, если бы вы получили все байты в заголовке базы данных, а затем перешли к байту с номером 60, это было бы началом user_version
прагмы. И поскольку оно имеет размер 4 байта (32 бита), вы знаете, что оно будет занимать байты 60-63.
Для справки здесь приведена документация для заголовка базы данных. Если вы прокрутите вниз до строки, где значение в столбце ‘Offset’ равно 60, вы увидите, что они указывают, что это пространство выделено для user_version
прагмы.