2012-03-12 3 views
0

J'ai une application qui sauvegarde et restaure des notes à Evernote. Les choses marchent bien, mais j'ai des problèmes lorsque je me déconnecte et que je me reconnecte comme combinaison de nom d'utilisateur et de mot de passe.NSUserDefault Doutes dans les sockets iphone

La première fois que je partage ma note avec les valeurs initiales de Nom d'utilisateur/Mot de passe, cela fonctionne correctement. Cependant, se déconnecter et revenir avec un nom d'utilisateur/mot de passe différent enregistre mes notes sur le compte d'origine.

J'ai une classe Singleton qui écrit le nom d'utilisateur/mot de passe pour le NSUserDefaults et SFHFKeychainUtils. Voici la méthode de connexion:

NSError *error = nil; 
      NSString *unameever = _txtevernoteUsername.text; 

      NSString *pwdever = _txtevernotepasswrd.text; 
      [[NSUserDefaults standardUserDefaults] setObject:unameever forKey:@"usernameevernote"]; 
      [[NSUserDefaults standardUserDefaults]synchronize]; 
      [[NSUserDefaults standardUserDefaults] setObject:pwdever forKey:@"passwrdevernote"]; 
      [[NSUserDefaults standardUserDefaults]synchronize]; 
      BOOL flag = [SFHFKeychainUtils storeUsername:unameever andPassword:pwdever forServiceName:@"mybibleappever" updateExisting:TRUE error:&error]; 

Voici la méthode de connexion pour envoyer le nom d'utilisateur/mot de passe:

- (void) connect { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

     //Checks if there is a saved User Name  
     if([defaults objectForKey:@"usernameevernote"]&&[defaults objectForKey:@"passwrdevernote"]) 
     { 

      NSString *usernameever = [defaults objectForKey:@"usernameevernote"]; 
      NSString *passwever = [defaults objectForKey:@"passwrdevernote"]; 

     // Returned result from the Evernote servers after authentication 
     EDAMAuthenticationResult* authResult =[userStore authenticate:usernameever :passwever : consumerKey :consumerSecret]; 

Voici la méthode du journal sur:

NSError *error = nil; 
       NSString *usernameever = [[NSUserDefaults standardUserDefaults] objectForKey:@"usernameevernote"]; 
       BOOL flag = [SFHFKeychainUtils deleteItemForUsername:usernameever andServiceName:@"mybibleappever" error:&error]; 
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"usernameevernote"]; 

problème avec mon code .. s'il vous plaît aidez-moi à le faire.

Répondre

0

Voici quelques conseils:

  • Il vous suffit d'appeler [[NSUserDefaults standardUserDefaults] synchroniser] une fois, à la fin de la définition de vos valeurs. Il ne semble pas que vous supprimiez la valeur standardUserDefaults lors de la déconnexion, ce qui explique pourquoi le même login/utilisateur persiste.

  • A partir du code affiché il semble que vous stockez mais jamais en utilisant la valeur SFHFKeychainUtils

+0

je fais le premier, mais deux autres je ne sais pas, peut u s'il vous plaît Xplain – stackiphone

+0

[[NSUserDefaults standardUserDefaults] removeObjectForKey: @ "nomutilisateurevernote"]; est-ce correct pour enlever la clef. J'ai fait ceci mais pas de chance. – stackiphone