2010-11-09 8 views
1

J'ai un problème similaire à link textstandardUserDefaults problème de lecture

J'utilise XCode 3.2.4 (1708). Après que je l'ai réinstallé, je commence à obtenir Nil de mon objet NSUserDefaults.

Si j'écris:

- (void)viewDidLoad {  
NSUserDefaults *sUserDefaults = [NSUserDefaults standardUserDefaults];  
NSString *myAdd = [standardUserDefaults objectForKey:kMyIPaddress]; 
} 

Je reçois Nil dans la variable myAdd, mais si je le fais comme ça:

- (void)viewDidLoad {  
NSUserDefaults *sUserDefaults = [NSUserDefaults standardUserDefaults]; 
[standardUserDefaults setObject:@"192.168.1.2" forKey:kMyIPaddress]; 
NSString *myAdd = [standardUserDefaults objectForKey:kMyIPaddress]; 
} 

-je obtenir 192.168.1.2 dans l'objet myAdd. On dirait que UserDefaults reste vide avant de leur mettre quelque chose, mais ils existent dans les préférences générales et contiennent des valeurs appropriées. Pourquoi ne puis-je pas y accéder avant d'y mettre quelque chose?

Répondre

1

Vous devez enregistrer vos valeurs par défaut avec NSUserDefaults.

NSDictionary *def = [NSDictionary dictionaryWithObjectsAndKeys: 
        @"192.168.1.2", kMyIPaddress, 
        nil]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:def]; 

et vous devez le faire chaque fois que votre application démarre.
Peu importe qu'il y ait des paramètres dans le Settings.app (mon interprétation de votre General Preferences). Si ces valeurs ne sont pas modifiées manuellement, elles ne sont pas stockées dans NSUserDefaults.

+0

Mais si j'enregistre les valeurs par défaut dans le ViewDidLoad comme ça - les valeurs par défaut seront remplacées par * def chaque fois que je lance l'application, non? – MoriQuessir

+0

On dirait qu'il ne remplace pas les paramètres, mais simplement les initialiser - ce dont j'avais besoin! Merci beaucoup! – MoriQuessir

1

Avez-vous fait

[[NSUserDefaults standardUserDefaults] synchronize]; 

après avoir mis votre NSString là-bas?

+0

On dirait que ça marche maintenant avec "synchroniser". Je vous remercie! – MoriQuessir

Questions connexes