2011-08-04 30 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

您不能修改與應用程序包文件..

相關問題