Вот функция, вдохновленная принятым ответом с правильным синтаксисом, который возвращает таблицу бит в wriiten справа налево.
num=255
bits=8
function toBits(num, bits)
-- returns a table of bits
local t={} -- will contain the bits
for b=bits,1,-1 do
rest=math.fmod(num,2)
t[b]=rest
num=(num-rest)/2
end
if num==0 then return t else return {'Not enough bits to represent this number'}end
end
bits=toBits(num, bits)
print(table.concat(bits))
>>11111111
Вот частичный ответ, подходящий только для iOS. До сих пор не знаю, как справиться с этим на Android (или, если вообще возможно).
Если вы хотите настроить предпочтения, которые можно просматривать и изменять в приложении «Настройки» для вашего приложения, вам нужно сделать один дополнительный шаг. Общие общие шаги:
- Создайте настройки флаттера, как обычно. - В папке iOS создайте новую папку верхнего уровня под названием «Settings.bundle». Уже есть один из них в папке Runner, но это не слишком полезно для нас.
- В папке Settings.bundle вам нужна другая подпапка с именем "en.lproj" (или любым другим языком, который вы хотите). В этой подпапке вам нужен файл с именем "Root.strings".
- На том же уровне, что и en.lproj, находится еще один файл с именем «Root.plist». Таким образом, структура выглядит в основном так:
main_app/
iOS/
...
Settings.bundle/
en.lproj/
Root.strings
Root.plist
Здесь находится магия (в основном). Как оказалось, флаттер автоматически добавляет префикс «флаттер». все имена предпочтений, которые вы используете. Это секрет. Итак, вот пример Root.plist. Запомните имена клавиш flutter.XXXX!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Data Location</string>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>Region</string>
<key>Key</key>
<string>flutter.dataSourceRegionV2</string>
<key>DefaultValue</key>
<string>0</string>
<key>Titles</key>
<array>
<string>US/World</string>
<string>EU</string>
<string>Advanced</string>
</array>
<key>Values</key>
<array>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
</array>
</dict>
<dict>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>
<string>Server</string>
<key>Key</key>
<string>flutter.dataSourceServerURLV2</string>
<key>DefaultValue</key>
<string></string>
<key>IsSecure</key>
<false/>
<key>KeyboardType</key>
<string>URL</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
</dict>
</array>
</dict>
</plist>
Содержит переведенные строки для использования в файле настроек для приложения на основе языка. Это довольно просто. Опять же, из того же примера:
/* A single strings file, whose title is specified in your preferences schema. The strings files provide the localized content to display to the user for each of your preferences. */
"Data Location" = "Data Location";
"Region" = "Region";
"Server" = "Adv. URL";
"none given" = "none given";
"Authorization" = "Authorization";
"Username" = "Username";
"Password" = "Password";
"Advanced" = "Advanced";
"US/World" = "USA";
"EU" = "European Union";
В вашем приложении флаттера вы используете обычное использование shared_preferences - просто не забудьте удалить «флаттер». префикс из вашего приложения.
Вот ссылка на приличную статью, которая содержит больше информации о настройках iOS в целом: Настройки iOS
Надеюсь, это поможет вам преодолеть эту маленькую головоломку! Теперь, если бы мы могли выяснить, Android!