2011-08-04 11 views
6

mam ustawienia wiązki w moim app .. zawierające root.plist teraz mam ekran, który zawiera wyboru .. po naciśnięciu pole wyboru chcę zmienić BOOL wartość DefaultValue Klucz PSToggleSwitchSpecifier w pliku plist. Od czasu jego wykonania w czasie wykonywania .. moje pytanie brzmi, że .. czy plik może zostać zmieniony w czasie wykonywania, a jeśli tak ... dać pomysł, jak to zrobić?Czy mogę modyfikować plik Root.plist w pakiecie ustawień dynamicznie?

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

góry dziękuję ;)

+0

Na blogu znajduje się ten sam [tutaj] (http://iphonesdevsdk.blogspot.com/2011/04/plist.html). –

+0

to nie jest dla root.plist i chyba – Zaraki

+0

Tak, to prawda. Jak sugerował Joshua, nie możesz modyfikować plików z pakietu aplikacji. Mam nadzieję, że powyższy link ci pomoże. –

Odpowiedz

11

Ponieważ wiązka ustawienia rezyduje wewnątrz Pakiet Twojej aplikacji, nie może zmienić go w czasie wykonywania, tylko w czasie kompilacji.

Można jednak użyć wartości NSUserDefaults, aby ustawić wartość w czasie wykonywania, a aplikacja ustawień automatycznie to odzwierciedli. Zostanie jednak zapisane w innym miejscu. Możesz go po prostu odczytać w taki sam sposób, jak w przypadku pakietu ustawień, także poprzez NSUserDefaults.

Należy pamiętać, że nie należy czytać bezpośrednio z pakietu ustawień, ponieważ nie ma to sensu. Zawsze należy pobrać i ustawić wartości domyślne użytkownika za pomocą NSUserDefaults. Gdy użytkownik wprowadzi zmianę w aplikacji ustawień, to automatycznie odzwierciedli to. Będą zawsze zsynchronizowane.

+0

Czy możesz powiedzieć, jak napisać w pakiecie Ustawienia root.plist przy użyciu NSUserDefaults? Jestem w stanie odczytać plik i chcę zaktualizować modyfikację wykonaną w aplikacji do Root.plist w pakiecie ustawień. – Mithun

2

Nie można modyfikować pliki z pakietu aplikacji ..

Powiązane problemy