FBSDKGraphRequest 实例方法 '-startWithCompletionHandler:' 未找到(返回类型默认为 'id')



我不懂ObjectiveC或iOS,但我正试图用这段代码来解决这个新问题。我将Facebook SDK pod更新到v12.0.0,现在我收到了以下警告:

在以下代码块的最后一行找不到实例方法"-startWithCompletionHandler:"(返回类型默认为"id"(。

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:_graphPath
parameters:arrayParams
HTTPMethod:_httpMethod];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
{

项目将构建并运行,但当调用此代码时,会发出图形请求,然后抛出异常:

以NSException类型的未捕获异常终止***由于未捕获异常"NSInvalidArgumentException"而终止应用程序,原因:"-[FBSDKGraphRequest startWithCompletionHandler:]:发送到实例0x28241b000的无法识别的选择器">

官方脸书文档说这样实现:

[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"fetched user:%@", result);
}

}];

由于找不到startWithCompletionHandler,xcode警告仍然存在,并且仍然使用此代码块引发异常。

当我在谷歌上搜索到自己陷入昏迷时,任何方向都将不胜感激!

Ok终于找到了正确的谷歌组合,发现:https://github.com/facebook/facebook-ios-sdk/blob/main/FBSDKTVOSKit/FBSDKTVOSKit/FBSDKDeviceLoginViewController.m

这里它给出了一个新的startWithCompletion的例子,而不是startWithCompleteHandler。

FBSDKGraphRequest *graphRequest = [[FBSDKGraphRequest alloc] initWithGraphPath:_graphPath
parameters:arrayParams
HTTPMethod:_httpMethod];
[graphRequest startWithCompletion:^(id<FBSDKGraphRequestConnecting> connection, id result, NSError *error) {

感谢@Larme突出了正确的方向!

最新更新