【问题标题】:Dynamically Changing the Values of Root.plist File in Settings.bundle在 Settings.bundle 中动态更改 Root.plist 文件的值
【发布时间】:2014-02-25 23:50:51
【问题描述】:

无论如何,是否可以更改 Settings.bundle 中包含的 Root.plist 文件中某些标签的值。

或者

无论如何我可以为 Settings.bundle 使用两个不同的 Root.plist 文件。

在我的场景中,应用程序的设置会因不同的环境而变化?设置我的意思是点击iPhone的“设置”,然后点击“应用程序”,你可以看到设置,如果有的话?

更新:如何在代码中动态更改 item[0]、item1、item[2] 的值。

【问题讨论】:

  • 为什么是负面的?这是一个非常合理的问题!
  • 您要更改哪些设置可用,还是要更改这些设置的值? (例如,如果我有一个设置“Foo”,您是否想有时显示“Foo”而不显示其他值?或者您是否只想将“Foo”有时设置为一个值,有时设置为另一个值,但将其保留为“Foo”无论如何?)
  • 我想更改这些设置的值。

标签: ios


【解决方案1】:

您可以通过 NSUserDefaults 更新存储在 Settings.bundle 中的值。在 Apple 的Preferences and Settings Programming Guide 中查看更多信息

【讨论】:

  • 从我在您的更新和上面的 cmets 中可以看出,这个答案仍然有效。
  • @Tim:我也有类似的问题。从上面的问题,我怎样才能得到标识符“environment_preference”的标题“环境”。我需要动态本地化标题。
  • @iPhoneGuy:你应该问一个单独的问题以获得更完整的答案,但简短的版本是你应该本地化你的设置包并为你想要“环境”的每个语言环境提供一个 .strings 文件以不同的方式出现。请参阅this top Google result 了解演练,或Apple's info about settings bundles 了解技术细节。
  • @Tim:我在这里问过这个问题stackoverflow.com/questions/22296249/…
【解决方案2】:

触摸您的 Settings.bundle 文件夹,并确保您的运行脚本在复制捆绑资源之前正在运行,例如

touch "$SRCROOT/Settings.bundle"

似乎这是一个 Xcode 错误 - 因为 Root.plist 文件被修改得很好,但 Xcode 显然只查看文件夹。

【讨论】:

    【解决方案3】:

    您无法编辑 Root.plist 的内容,因为 Settings.bundle 位于 App Bundle 中,它是只读的。

    但是,您可以为从 NSUserDefaults 读取的值定义自己的映射到动态值。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-15
    • 2012-06-25
    • 2021-01-29
    • 1970-01-01
    • 2010-11-24
    • 2011-10-19
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多