Я работаю над мобильным приложением, использующим Corona SDK, и пытаюсь сохранить настройки, используя функции system.setPreferences()
/ system.getPreference()
. На моем телефоне android он работает нормально, но в Corona Simulator он работает следующим образом:
- В первый раз я запускаю следующий код:
system.setPreferences("app", {
test = true
})
print(system.getPreference("app", "test", "boolean"))
Он печатает true
, как и ожидалось
Во второй раз я пытаюсь получить предпочтение, не сохраняя его (оно должно быть уже сохранено на предыдущем шаге)
print(system.getPreference("app", "test", "boolean"))
Вывод следующий:
ERROR: C:\Users\kezzyhko\Desktop\MobileGame\main.lua:7: system.getPreference() - Preference's string value cannot be converted to boolean.
nil
Пытаясь получить его как строку
print(system.getPreference("app", "test", "string"))
Я получаю 1
Я тоже пытался заглянуть в файл C:\Users\kezzyhko\AppData\Local\Corona Labs\Corona Simulator\Sandbox\mobilegame-370DE4D889B5BBC98141FE51641482AD\.system\CoronaPreferences.sqlite
, где хранятся настройки, и действительно логические значения сохраняются как 0
/ 1
. Если в этой базе данных я вручную отредактирую их на true
, код начнет работать должным образом:
print(system.getPreference("app", "test", "boolean"))
output true
Это известная проблема (я не смог найти ни одной информация об этом)? Есть ли способ исправить это без грязных обходных путей?