Facebook SDK FBRequest requestForMe不兼容的指针类型



我在尝试将我的Facebook SDK升级到最新的生产版本时遇到了问题(FacebookSDK-3.0.8.pkg-适用于iOS的Facebook SDK 3.0(更新1)[2012年8月21日])。

我在这个页面上跟随教程。

我在尝试让代码工作时遇到了一些问题,这并不像教程中所说的那么容易。我可以打开我的会话,但无法获得工作请求。

- (IBAction)facebookTapped:(id)sender {
[FBSession openActiveSessionWithPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
    if(error) {
        NSLog(@"Error opening session: %@", error);
        return;
    }
    if(session.isOpen) {
        NSLog(@"session is open");
        FBRequest *me = [FBRequest requestForGraphPath:@"me"];
        [me startWithCompletionHandler:^(FBRequestConnection *connection,
                                         NSDictionary<FBGraphUser> *my,
                                         NSError *error) {
            NSLog(@"My name: %@", my.first_name);
        }];
    }
    }];
    }

如果我删除对FBRequest requestforGraphpath的调用,我的控制台将显示会话已打开。如果我保留它,我会收到错误"不兼容的块指针类型初始化'void(^)(struct FBRequestConection,struct NSDictionary,struct NSError*)',应为'FBRequestHandler'

现在让我困惑的是,这正是教程中显示的代码,不包括我尝试不同方法更改的[FBRequest requestForMe]。没有任何效果。

有人能帮我解释一下吗?

谢谢。

我能够通过在教程中更改它们的原始块来解决这个问题

if (session.isOpen) {
FBRequest *me = [FBRequest requestForMe];
[me startWithCompletionHandler: ^(FBRequestConnection *connection, 
                                  NSDictionary<FBGraphUser> *my,
                                  NSError *error) {
    self.label.text = my.first_name;
}];
}

if(session.isOpen) {   
        FBRequest *me = [FBRequest requestForMe];
        [me startWithCompletionHandler:^(FBRequestConnection *connection,
                                         id result,
                                         NSError *error) {
            NSDictionary<FBGraphUser> *my = (NSDictionary<FBGraphUser> *) result;
           NSLog(@"My dictionary: %@", my.first_name);
        }];
    }

最新更新