我的应用程序中有一个设置包.. 包含 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/