gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:30:49 24 4
gpt4 key购买 nike

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

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

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

- (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 的调用,我的控制台会显示 session 已打开。如果我保留它,我会收到错误“Incompatible block pointer types initializing 'void(^)(struct FBRequestConection , struct NSDictionary, struct NSError*)', expected 'FBRequestHandler'

现在让我感到难过的是,这正是教程中显示的代码,除了我尝试不同方法更改 [FBRequest requestForMe] 之外。都没有用。

有谁能帮我解释一下吗?

谢谢。

最佳答案

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

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

关于ios - Facebook SDK FBRequest requestForMe 不兼容的指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com