0

使用InAppSettingsKit时,我看到了使用不同 plist 文件的几种方式,1)使用子窗格时或 2)使用列表时。

我希望能够重用 plist 文件,但不同设置的键不同。这将允许我重用相同的文件,但存储不同的设置。IE。像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文件,我希望重用它们。

4

1 回答 1

0

IASK 不支持 plist 中的动态变量分辨率。但是,您应该能够使用自定义构建脚本来实现这一点,该脚本在编译时从一个带有变量替换的主文件生成不同的 plist 文件。用于/usr/libexec/PlistBuddy处理 plist 文件。

于 2020-11-13T10:31:47.987 回答