iphone - 我可以动态修改设置包中的 Root.plist 吗?

标签 iphone objective-c plist root.plist

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

这是plist:

    <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>

提前致谢;)

最佳答案

因为设置包位于内部您应用的包中,您不能在运行时更改它,只能在编译时更改。

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

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

关于iphone - 我可以动态修改设置包中的 Root.plist 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941272/

相关文章:

iphone - iOS:直接访问 MySQL 数据库?

iphone - 如何从字符串中删除一个单词

ios - 错误 : Can't assign Value of type '[SomeObject]' to type '[NSMutableArray]'

iphone - 如何从 plist 文件中提取字符串进行翻译(本地化)?

objective-c - 从 plist 文件写入和读取

iphone - 英语语言的本地化显示名称不起作用

iPhone开发者公司注册

android - Unity 3d 在 Android 和 iPhone 上的表现如何?

ios - 在ios中将两个数组合并为一个

ios - TableView 单元格中的 NSAttributedString - 有时显示为纯文本