120 votes

NSUserDefaults removeObjectForKey vs setObject:nil

Les deux lignes suivantes sont équivalentes ?

1.``

2.``

97voto

RocketMan Points 2257

Oui, les deux lignes de code sont équivalent, les deux auront pour résultat de néant lire

   id obj = [[NSUserDefaults standardUserDefaults] objectForKey:@"example key"];

NSUserDefaults sera de retour nul si la clé n'a pas été trouvé. Je vous recommande d'utiliser le removeObjectForKey au lieu de mettre à néant.

voici comment faire pour tester si le réglage de la valeur de clé à néant retiré de l'entrée de clé de NSUserDefaults standardUserDefaults.

NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] copy];
   for(NSString *key in keys) {
       NSLog(@"Key Name: %@", key);
}
[keys release];

ou tout simplement faire un dump de la clé/valeur dictionnaire de NSUserDefaults standardUserDefaults

NSLog(@"All contents of NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X