FBSession 的 Facebook iOS SDK 3.0 登录教程问题
Posted
技术标签:
【中文标题】FBSession 的 Facebook iOS SDK 3.0 登录教程问题【英文标题】:Facebook iOS SDK 3.0 Login Tutorial Issue with FBSession 【发布时间】:2012-08-12 21:22:59 【问题描述】:我目前正在尝试构建一个应用程序 - 其基础(希望)是基于 Facebook ios SDK 3.0 教程构建的。
我关注的教程位于:http://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/authenticate/
我发现 Facebook 的各种 SDK 版本在最终版本中都有一些变化。
但是在代码编译之前我确实有最后一个问题:
"没有已知的选择器'sessionOpenWithPermissions:completionHandler:'的类方法"
这个错误是指以下代码:
- (void)openSession
[FBSession sessionOpenWithPermissions:nil completionHandler:
^(FBSession *session, FBSessionState state, NSError *error)
[self sessionStateChanged:session state:state error:error];
];
在 Xcode 中查看 FBSession.h 文件时,没有提到 sessionOpenWithPermissions
。
有人可以帮我解决这个问题吗?我是 Objective-C/Xcode 的新手,正在通过试炼学习。
【问题讨论】:
【参考方案1】:我遇到了同样的问题,我的代码可以使用以下更改。
//REPLACE
[FBSession sessionOpenWithPermissions:nil
completionHandler: ^(FBSession *session, FBSessionState state, NSError *error)
[self sessionStateChanged:session state:state error:error];
];
//WITH
[FBSession openActiveSessionWithPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error)
[self sessionStateChanged:session state:state error:error];
];
如果您 alt 单击该方法,您将获得有关要传递的参数的更多信息。 openActiveSessionWithPermissions options
【讨论】:
非常感谢你们的帮助。一个后续问题。您建议的代码更改有效 - 我在 Scrumptious 示例中找到了它,因为我知道我在寻找什么,但是当我单击应用程序主页上的登录按钮时出现错误。错误在 main.m 中以下代码的“return”语句中显示“线程 1:Signal SIGABRT”:#importopenActiveSessionWithPermissions
已折旧。引用自 SDK 指南:如果您的应用以前使用 SDK 的 v3.0,则需要删除 openActiveSessionWithPermissions:allowLoginUI:completionHandler:
的使用并替换为 openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:
(或者更简单,openActiveSessionWithAllowLoginUI
)。【参考方案2】:
文档似乎有错误。根据 API 更改日志,该类方法已被替换。
FBSession 类方法 sessionOpenWithPermissions:completionHandler: 已被移除,改为使用新的 openActiveSessionWithPermissions:allowLoginUI:completionHandler: 类方法。
API Change log URL
【讨论】:
请原谅我的无知,但正确的代码是什么? 您可以将 AppDelegate 中的 openSession 方法替换为类似于:code
-(void)openSessionWithAllowLoginUI:(BOOL)allowLoginUI
您还将相应地更新对该方法的所有调用。查看已完成的 Scrumptious 示例项目,因为它已使用新的类方法实现进行了更新。以上是关于FBSession 的 Facebook iOS SDK 3.0 登录教程问题的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中,必须为调用此端点指定一个打开的 FBSession