【问题标题】:Facebook SDK FBRequest requestForMe Incompatible pointer typesFacebook SDK FBRequest requestForMe 指针类型不兼容
【发布时间】:2012-09-05 01:03:54
【问题描述】:

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

我正在关注this page 上的教程。

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

- (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*)', expected 'FBRequestHandler'

现在让我感到困惑的是,这是教程中显示的确切代码,除了我尝试不同的方法更改了 [FBRequest requestForMe] 之外。没有任何效果。

谁能帮我解释一下?

谢谢。

【问题讨论】:

  • 由于 48 小时的时间限制已经过去,您现在可以发布编辑作为答案吗?

标签: ios facebook sdk


【解决方案1】:

我能够通过在以下教程中更改其原始块来解决此问题:

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);
        }];
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多