我在執行下面的代碼檢查應用程序中的我的Facebook會話的狀態sessionStateChanged IOS 6的Facebook SDK 3.1
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
[self reautorizarPermisos:self ];
}
break;
case FBSessionStateClosed:
NSLog(@"sesion close");
[self loginFB:self ];
break;
case FBSessionStateClosedLoginFailed:
NSLog(@"sesssion failed");
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter]
postNotificationName:UIDocumentStateChangedNotification
object:session];
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
此代碼是從這裏 facebook documentation
訪問,我打電話方法如下
- (IBAction)login:(id)sender {
FBSession *sesion;
FBSessionState state;
NSError *error;
[self sessionStateChanged:sesion state:state error:error];
NSLog(@"loginnnnnnn");
}
問題是國家沒有進入任何的情況下,顯然會話是不是操作恩,也不關閉或失敗,非常感謝你的幫助
你爲什麼不登錄'state'的值檢查狀態? –
是,值爲858157003,無意義 – asl87
這是枚舉值的整數表示形式。它肯定有一個含義,試着將它與** all **進行比較,而不是像現在這樣,只是將其與'enum'的可能值相比較。檢查我的答案。 –