在使用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文件,我希望重用它们。
发布于 2020-11-13 10:31:47
IASK不支持动态变量分解。但是,您应该能够通过一个自定义构建脚本来实现这一点,该脚本在编译时从一个主文件生成不同的plist文件并进行变量替换。使用/usr/libexec/PlistBuddy处理plist文件。
https://stackoverflow.com/questions/64812361
复制相似问题