【问题标题】:Can i modify Root.plist in settings bundle dynamically?我可以动态修改设置包中的 Root.plist 吗?
【发布时间】:2011-10-19 22:54:55
【问题描述】:

我的应用中有一个设置包.. 包含 root.plist 现在我有一个包含 checkbox 的屏幕.. 在按下复选框时,我想更改 plist 中 PSToggleSwitchSpecifier 的 DefaultValue 键的 BOOL 值。 由于它是在运行时完成的..我的问题是..可以在运行时更改文件吗?如果是的话..给一个想法怎么做??

这是列表:

    <plist version="1.0">
<dict>
    <key>PreferenceSpecifiers</key>
    <array>
        <dict>
            <key>DefaultValue</key>
            <string></string>
            <key>Key</key>
            <string>Username</string>
            <key>Title</key>
            <string>Username</string>
            <key>Type</key>
            <string>PSTextFieldSpecifier</string>
        </dict>
        <dict>
            <key>DefaultValue</key>
            <string></string>
            <key>IsSecure</key>
            <true/>
            <key>Key</key>
            <string>Password</string>
            <key>Title</key>
            <string>Password</string>
            <key>Type</key>
            <string>PSTextFieldSpecifier</string>
        </dict>
        <dict>
            <key>Type</key>
            <string>PSToggleSwitchSpecifier</string>    <-----toggleSwitch
            <key>Title</key>
            <string>Remember</string>
            <key>Key</key>
            <string>CheckBox</string>
            <key>DefaultValue</key>    <----- Default Value
            <false/>                   <---- want to change this value 
        </dict>
    </array>
    <key>Title</key>
    <string>Settings</string>
</dict>
</plist>

提前谢谢你;)

【问题讨论】:

  • 同一个here有一篇博文。
  • 我猜这不适用于 root.plist
  • 是的,没错。正如 Joshua 建议的那样,您不能从应用程序包中修改文件。希望以上链接对您有所帮助。
  • - 如果您有越狱的 iOS 设备,并且您的应用在 /Applications 目录中运行,您可以修改应用程序包中的文件
  • 嘿@Zaraki,你找到问题了吗?

标签: iphone objective-c plist root.plist


【解决方案1】:

由于设置包在您的应用包中,您不能在运行时更改它,只能在编译时更改。

但是,您可以在运行时使用NSUserDefaults 设置值,设置应用程序会自动反映这一点。不过,它将保存在其他地方。您可以像使用设置包一样读取它,也可以通过NSUserDefaults。

请注意,您不应直接从设置包中读取,因为这没有任何意义。您应该始终使用NSUserDefaults 获取和设置用户默认值。当用户在设置应用程序中进行更改时,NSUserDefaults 将自动反映这一点。它们将始终保持同步。

【讨论】:

  • 你能告诉我如何使用 NSUserDefaults 写入设置包 root.plist 吗?我能够读取该文件,并且我想将在应用程序中完成的修改更新到设置包中的 Root.plist 中。
【解决方案2】:

您不能使用应用程序包修改文件..

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 2012-07-27
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2018-05-03
    相关资源
    最近更新 更多