8

我的应用程序中有一个设置包.. 包含root.plist 现在我有一个包含复选框的屏幕.. 在按下复选框时,我想更改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>

提前谢谢你;)

4

2 回答 2

11

由于设置包位于应用程序包中,因此您无法在运行时更改它,只能在编译时更改。

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

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

于 2011-08-04T12:26:28.297 回答
2

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

于 2011-08-04T12:22:36.730 回答