2011-08-04 13 views
6

Tengo un paquete de configuración en mi aplicación .. contiene root.plist ahora tengo una pantalla que contiene una casilla de verificación .. al pulsar la casilla de verificación quiero cambiar el valorBOOL para ValorPredeterminado clave de PSToggleSwitchSpecifier en el plist. Dado que se realiza en tiempo de ejecución ... mi pregunta es si ... ¿se puede cambiar el archivo en tiempo de ejecución y, en caso afirmativo, dar una idea de cómo hacerlo?¿Puedo modificar Root.plist en paquetes de configuración de forma dinámica?

aquí es el 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> 

gracias de antemano ;)

+0

Hay una publicación de blog para el mismo [aquí] (http://iphonesdevsdk.blogspot.com/2011/04/plist.html). –

+0

esto no es para root.plist Supongo – Zaraki

+0

Sí, eso es correcto. Como Joshua ha sugerido, no puedes modificar los archivos del paquete de aplicaciones. Espero que el enlace de arriba te ayude. –

Respuesta

11

Debido a que el paquete de configuración reside en el interior el paquete de su aplicación, usted no puede cambiarlo en tiempo de ejecución, solo en tiempo de compilación.

Sin embargo, puede usar NSUserDefaults para establecer el valor en tiempo de ejecución, y la aplicación de configuración reflejará esto automáticamente. Sin embargo, se guardará en otro lugar. Puede leerlo de la misma manera que lo haría con el conjunto de configuraciones, también a través del NSUserDefaults.

Tenga en cuenta que no debe leer directamente el paquete de configuración, ya que no tiene sentido. Siempre debe buscar y establecer los valores predeterminados del usuario usando NSUserDefaults. Cuando el usuario realiza un cambio en la aplicación de configuración, NSUserDefaults reflejará esto automáticamente. Siempre se mantendrán sincronizados.

+0

¿Puede decirnos cómo escribir en el paquete de configuración root.plist usando NSUserDefaults? Puedo leer el archivo y quiero actualizar la modificación realizada en la aplicación en Root.plist en el paquete Configuraciones. – Mithun

2

No se puede modificar archivos con el paquete de aplicaciones ..

Cuestiones relacionadas