Как я могу повторно использовать файл plist с InAppSettingsKit?

При использовании InAppSettingsKit я вижу несколько способов использования разных файлов plist: 1) при использовании дочерней панели или 2) при использовании списка.

Я хочу иметь возможность повторно использовать файл plist, но иметь разные ключи для разных настроек. Это позволило бы мне повторно использовать один и тот же файл, но сохранить разные настройки. т.е. что-то вроде: CommonSettings.plist:

<?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>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>Type</key>
            <string>PSMultiValueSpecifier</string>
            <key>Title</key>
            <string>A_COMMON_SETTING</string>
            <key>Key</key>
            <string>${unique}_setting_value</string>
            <key>DefaultValue</key>
            <integer>1</integer>
        </dict>
    </array>
</dict>
</plist>

Примечание. Я уже беру значения/названия, используя методы делегата valuesFor и titlesFor для класса PSMultiValueSpecifier.

Один из способов, которым я думал об этом, заключался в использовании функциональности списка без возможности добавления, но это не сработало, поскольку AddSpecifier кажется обязательным, хотя в документации указано:

Необязательно, группа списка также имеет AddSpecifier

(Моя программа зависла без него)

Примечание. Я просмотрел этот вопрос, но мне уже удобно использовать разные файлы plist , я хочу использовать их повторно.


person app_dev55    schedule 12.11.2020    source источник


Ответы (1)


IASK не поддерживает разрешение динамических переменных в plist. Однако вы сможете добиться этого с помощью пользовательского сценария сборки, который генерирует разные файлы plist во время компиляции из одного главного файла с заменой переменных. Используйте /usr/libexec/PlistBuddy для работы с файлами plist.

person Ortwin Gentz    schedule 13.11.2020
comment
Спасибо за предложение; есть ли способы использовать делегат или расширить IASKAppSettingsViewController для поддержки сценария, который я упоминаю? Для меня проблема заключается не в создании файлов plist, это просто кажется излишним и, возможно, его можно избежать. - person app_dev55; 14.11.2020
comment
Нет, в настоящее время IASK не поддерживает это, и этого нет в нашей дорожной карте. Не стесняйтесь расширять его в соответствии с вашими потребностями. - person Ortwin Gentz; 16.11.2020