0

そのため、 を使用してとNSUserDefaultsを保存しています。シングルトン User オブジェクトを作成しています:FBAccessTokenKeyFBExpirationDateKey

- (id)init
{
    self = [super init];
    if (self != nil) {
         facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:self];

         NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
         if ([defaults objectForKey:@"FBAccessTokenKey"] 
            && [defaults objectForKey:@"FBExpirationDateKey"] ) {
            NSLog(@"ACCESS KEY IS NOT EMPTY");
            facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
            facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
         } else {
              NSLog(@"ACCESS KEY IS EMPTY");
         }


    }
    return self;
}

また、ログアウト時に呼び出される didLogout メソッドも実装しました。

- (void)fbDidLogout {
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"FBAccessTokenKey"];
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"FBExpirationDateKey"];
}

これにより、基本的にトークンキーがクリア/フラッシュされます。本当の問題は、ログアウトをクリックしてアプリを終了し、アプリを再度実行すると、キーが検出され、FBAccessTokenKeyまだFBExpirationDateKeyそこにあることです。どうしてこれなの?

4

1 に答える 1

7

あなたは呼び出す必要があります:[[NSUserDefaults standardUserDefaults] synchronize]終了する前に

于 2011-09-16T15:40:01.093 に答える