【问题标题】:How can I reuse a plist file with InAppSettingsKit?如何使用 InAppSettingsKit 重用 plist 文件?
【发布时间】:2021-02-24 22:57:29
【问题描述】:

在使用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>

注意:我已经使用 valuesFortitlesFor 委托方法获取值/标题,用于 PSMultiValueSpecifier

我认为这样做的一种方法是使用没有添加功能的列表功能,但这不起作用,因为即使文档指出,AddSpecifier 似乎也是必需的:

可选地,列表组也有一个 AddSpecifier

(没有它我的程序崩溃了)

注意:我确实查看了 this question,但我已经习惯使用不同的 plist 文件,我希望重用它们。

【问题讨论】:

    标签: inappsettingskit


    【解决方案1】:

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

    【讨论】:

    • 感谢您的建议;有什么方法可以使用委托或扩展IASKAppSettingsViewController 来支持我提到的场景?对我来说,挑战不是生成 plist 文件,它似乎是多余的,可能是可以避免的。
    • 不,目前 IASK 不支持此功能,并且不在我们的路线图中。请随意根据您的需要扩展它。
    猜你喜欢
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    • 2010-12-17
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    相关资源
    最近更新 更多