2011-08-04 29 views
6

我有一个设置捆绑在我的应用程序..含root.plist 现在我有一个屏幕,包含按复选框复选框 .. 我想改变BOOL默认值.png中的PSToggleSwitchSpecifier的关键字。 由于它在运行时完成..我的问题是..该文件可以在运行时更改,如果是的话..给一个想法如何做到这一点?我可以动态修改设置包中的Root.plist吗?

这里是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> 

预先感谢您;)

+0

这是一篇博客文章,其内容相同[http://iphonesdevsdk.blogspot.com/2011/04/plist.html]。 –

+0

这是不是为root.plist我猜 – Zaraki

+0

是的,这是正确的。正如约书亚所建议你不能修改应用程序包中的文件。我希望上面的链接可以帮助你。 –

回答

11

因为设置包所在你的应用程序包,你不能不能只在编译时在运行时改变它。

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

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

+0

您可以使用NSUserDefaults告诉如何写入Settings bundle root.plist?我能够读取该文件,并且想要将在应用程序中完成的修改更新到Settings.png中的Root.plist中。 – Mithun

2

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

相关问题