【发布时间】:2013-01-03 21:08:10
【问题描述】:
我正在实现以下代码来检查应用程序中我的 Facebook 会话的状态
- (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,没有意义
-
即枚举值的整数表示。它肯定是有意义的,尝试将它与 all
enum的可能值进行比较,而不是像您现在所做的那样仅 3。检查我的答案。
标签: objective-c ios facebook ios6 facebook-login