Ios NSUserDefaults standardUserDefaults未清除的问题

Ios NSUserDefaults standardUserDefaults未清除的问题,ios,objective-c,facebook,nsuserdefaults,facebook-ios-sdk,Ios,Objective C,Facebook,Nsuserdefaults,Facebook Ios Sdk,因此,我使用NSUserDefaults存储我的FBAccessTokenKey和FBExpirationDateKey。我正在创建单例用户对象: - (id)init { self = [super init]; if (self != nil) { facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:self]; NSUserDefaults *defaults =

因此,我使用
NSUserDefaults
存储我的
FBAccessTokenKey
FBExpirationDateKey
。我正在创建单例用户对象:

- (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
仍然存在。这是为什么?

在退出之前,您应该调用:
[[NSUserDefaults standardUserDefaults]synchronize]