当我打开 Facebook 会话时,一切正常,完成块被调用。
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
NSLog(@"openSession handler");
}];
但是后来当我要求额外的权限时,两个完成块都被调用,而不仅仅是新的。
[FBSession.activeSession reauthorizeWithReadPermissions:
[NSArray arrayWithObject:@"user_photos"]
completionHandler:^(FBSession *session, NSError *error) {
NSLog(@"reauthorize handler");
}];
这是一个错误还是应该是这样的?我怎样才能避免这种行为?是否可以在调用后删除完成块?
我查看了 Scrumptious 样本,其行为完全相同。当应用程序请求发布权限时,将调用发布完成块并再次调用登录块。
我正在 iOS5 和 Facebook-ios-sdk 3.1.1 上进行测试