0

ノートをEvernoteにバックアップおよび復元するアプリケーションがあります。正常に動作していますが、別のユーザー名とパスワードの組み合わせでログアウトおよびログインし直すときに問題が発生します。

初めてメモをユーザー名/パスワードの初期値と共有すると、正しく機能します。ただし、別のユーザー名/パスワードでログアウトして再度ログインすると、メモが元のアカウントに投稿されます。

ユーザー名/パスワードをNSUserDefaultsとSFHFKeychainUtilsに書き込むシングルトンクラスがあります。ログイン方法は次のとおりです。

 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];

ユーザー名/パスワードを送信するための接続方法は次のとおりです。

- (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];

ログアウト方法は次のとおりです。

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

私のコードに問題があれば..これを行うのを手伝ってください。

4

1 に答える 1

0

ここにいくつかのヒントがあります:

  • 値の設定の最後に、[[NSUserDefaultsstandardUserDefaults]synchronize]を1回呼び出すだけで済みます。

  • ログアウトでstandardUserDefaults値を削除しているようには見えないため、同じログイン/ユーザーが保持されている可能性があります。

  • 投稿したコードから、保存しているように見えますが、SFHFKeychainUtilsの値を使用することはありません

于 2012-03-12T15:41:33.280 に答える