我不是 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”
Facebook 官方文档说要这样实现:
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSLog(@"fetched user:%@", result);
}
}];
对于未找到 startWithCompletionHandler 的 xcode 警告仍然存在,并且使用此代码块仍会抛出异常。
任何方向将不胜感激,因为我已经用谷歌搜索自己陷入昏迷!
最佳答案
好吧,终于找到了正确的 Google 组合并找到了:https://github.com/facebook/facebook-ios-sdk/blob/main/FBSDKTVOSKit/FBSDKTVOSKit/FBSDKDeviceLoginViewController.m
这里给出了一个新的startWithCompletion的例子,而不是startWithCompletionHandler。
FBSDKGraphRequest *graphRequest = [[FBSDKGraphRequest alloc] initWithGraphPath:_graphPath
parameters:arrayParams
HTTPMethod:_httpMethod];
[graphRequest startWithCompletion:^(id<FBSDKGraphRequestConnecting> connection, id result, NSError *error) {
感谢@Larme 指出了正确的方向!
关于ios - FBSDKGraphRequest 实例方法 '-startWithCompletionHandler:' 未找到(返回类型默认为 'id' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70880596/