Tengo un problema para recuperar los valores predeterminados del conjunto de configuraciones cuando se inicia por primera vez una aplicación. Todos los campos no multivalentes devuelven el valor predeterminado correctamente. Todos los campos multivalentes devuelven NULL. El código que estoy utilizando para recuperar el valor actual:Configuraciones de tipo multivalor agrupar campos siempre devuelve nulo
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *upt=[defaults objectForKey:@"upthreshold"];
la sección correspondiente de Root.plist es:
<dict>
<key>Title</key>
<string>Update Threshold</string>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Key</key>
<string>upthreshold</string>
<key>DefaultValue</key>
<string>15</string>
<key>Titles</key>
<array>
<string>2 km</string>
<string>5 km</string>
<string>10 km</string>
<string>15 km</string>
<string>25 km</string>
<string>50 km</string>
<string>75 km</string>
<string>100 km</string>
<string>150 km</string>
<string>250 km</string>
<string>500 km</string>
<string>1000 km</string>
</array>
<key>Values</key>
<array>
<string>2</string>
<string>5</string>
<string>10</string>
<string>15</string>
<string>25</string>
<string>50</string>
<string>75</string>
<string>100</string>
<string>150</string>
<string>250</string>
<string>500</string>
<string>1000</string>
</array>
</dict>
yo esperaría que "15" volverían como el valor actual, ya que se establece en el valor predeterminado. ¿Se requiere algún procesamiento diferente para los campos de Multivalue? Como dije anteriormente, hay 6 campos anteriores que devuelven sus valores correctamente. Este campo y los siguientes 2 campos Multivalue no. Los campos multivalentes están todos definidos de la misma manera.
Podría estar malinterpretando esto, pero parece que "umbral" es un valor para la clave "Clave", no una clave en sí misma. –
Tengo todos los campos configurados de esta manera y cada ejemplo que he visto establece la "Clave" de esta manera y esa es la forma en que se refiere al campo cuando se hace una llamada a objectForKey. Creo que esto es correcto Si no, ¿cómo lo definirías? – mlewis54
Siempre he tenido problemas con los valores predeterminados si aún no se ha visitado la página de configuración. Tiendo a detectar nil y hardcode un valor predeterminado en la aplicación. No es bonito, pero funciona :( – deanWombourne