Проблема с NSUserDefaults standardUserDefaults не устраняется - PullRequest
0 голосов
/ 16 сентября 2011

Поэтому я использую NSUserDefaults для хранения моих FBAccessTokenKey и FBExpirationDateKey. Я создаю одноэлементный объект User:

- (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 все еще там. Почему это?

1 Ответ

7 голосов
/ 16 сентября 2011

Вы должны позвонить: [[NSUserDefaults standardUserDefaults] synchronize] до выхода

...