2011-12-27 1 views
1

J'utilise le code ci-dessous pour enregistrer le mot de passe, les informations d'identification enregistrées correctement mais le problème est lorsque je lance à nouveau l'application, elle affiche les informations d'identification dans les champs mais reste vide (j'utilise images pour montrer la case cochée et décochée). Mes questions sont: 1. Comment puis-je enregistrer l'état de la case à cocher si elle est cochée ou non cochée et 2. Si elle n'est pas cochée, comment puis-je supprimer les informations d'identification de nsuserdefaults.NSUserDefaults, suppression des informations d'identification sur l'iPhone

- (IBAction)checkboxButton:(id)sender{ 
if (checkboxSelected == 0){ 
    [checkboxButton setSelected:YES]; 


    NSString *user = [userNameField text]; 

    NSString *passwd = [passwordField text]; 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults setObject:user forKey:@"Username"]; 

    [defaults setObject:passwd forKey:@"Password"]; 

    [defaults synchronize]; 

    NSLog(@"Data Saved"); 

    checkboxSelected = 1; 

} else { 
    [checkboxButton setSelected:NO]; 
    checkboxSelected = 0; 

    //Saving Username Password in file 



} 

}

merci ... :)

+0

vous pouvez utiliser - (void) setBool: (BOOL) value forKey: (NSString *) defaultName méthode de NSUserDefaults pour enregistrer l'état du bouton de la case à cocher .Egalement pour supprimer les informations d'identification que vous pouvez utiliser NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [par défaut removeObjectForKey: @ "Mot de passe"] – Ali3n

Répondre

4

Eh bien, vous pouvez enregistrer l'état de la case à cocher dans le NSUserDefaults.

Pour lire ce qui suit.

BOOL isChecked = [[NSUserDefaults standardUserDefaults] boolForKey:@"loginCheckBox"]; 

Il renverra NO (faux) s'il n'est pas défini. Pour définir l'état:

[[NSUserDefaults standardUserDefaults] setBool:checkboxButton.selected forKey:@"loginCheckBox"]; 

Pour supprimer les valeurs du NSUserDefaults situé juste les propriétés à nil:

[defaults setObject:nil forKey:@"Username"]; 
[defaults setObject:nil forKey:@"Password"]; 

Aussi je peux fortement vous conseiller pour stocker le mot de passe dans le porte-clés car toutes les données enregistrées dans NSUserDefaults sont stockées en texte brut.

Vous pouvez utiliser le facile à SSKeyChain pour accéder plus facilement à l'API du trousseau de clés.

+0

pouvez-vous me fournir un bon lien pour trousseau tutoriel/exemple, afin que je comprenne – AppDeveloper

+0

Edited mon poste et ajouté facile à utiliser classe Objective-C pour accéder au trousseau. – rckoenes

+0

merci @rckoenes – AppDeveloper

0

pour sauver l'état coche vous devez maintenir une variable qui doit être enregistré et lu à nouveau pour régler le dernier état de coche et
pour éliminer les valeurs de NSUserDefaults: vous pouvez utiliser: removeObjectForKey méthode

Questions connexes