2011-09-16 37 views
0

所以我使用NSUserDefaults來存儲我的FBAccessTokenKeyFBExpirationDateKey。我創建一個單用戶對象:問題NSUserDefaults standardUserDefaults沒有清除

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

這基本上清除/刷新了令牌密鑰。 現在真正的問題是,當我點擊註銷時,退出應用程序,然後再次運行應用程序,它會檢測到密鑰FBAccessTokenKeyFBExpirationDateKey仍然存在。爲什麼是這樣?

回答

7

您應該致電[[NSUserDefaults standardUserDefaults] synchronize]退出前

+0

沒什麼可說的:) – Macmade