Facebook iOS SDK 3.0登录教程FBSession的问题

问题描述:

我目前正在尝试将一个应用程序 - 它的基础(希望)构建在Facebook iOS SDK 3.0教程上。Facebook iOS SDK 3.0登录教程FBSession的问题

我下面的教程位于: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的新手,并且正在通过试用版来学习。

看起来文档有一个错误。根据API更改日志,该类方法已被替换。

FBSession类方法sessionOpenWithPermissions:completionHandler:已被删除,而不是使用新的openActiveSessionWithPermissions:allowLoginUI:completionHandler:类方法。

API Change log URL

+0

对不起,我的无知,但正确的代码是什么? – 2012-08-13 17:34:19

+0

我在哪里可以放置allowLoginUI:代码? – 2012-08-13 17:36:06

+0

你可以使用类似于''code'-(void)openSessionWithAllowLoginUI:(BOOL)allowLoginUI – 2012-08-13 19:18:29

我碰到了同样的问题,得到了我的代码与下面的变化工作。

//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

+0

非常感谢您的帮助。但有一个后续问题。您建议的代码更改有效 - 现在我知道我在寻找什么,但在我点击应用程序主页上的登录按钮时发生错误,我发现它在令人愉快的示例中。在main.m的以下代码中的“return”语句中出现错误:“线程1:信号SIGABRT”: #import #import“MMAppDelegate。H” INT主(INT的argc,字符* argv的[]){ @autoreleasepool { 返回UIApplicationMain(的argc,argv的,零, NSStringFromClass([MMAppDelegate类])); } } – 2012-08-19 16:10:24

+0

抱歉缺少格式,但我不知道如何格式化代码块中的评论:S – 2012-08-19 16:14:07

+0

也许检查所有链接到您的按钮的方法是可用的,它发生在我身边时玩弄我删除或重命名IBAction代码,但仍然在xib中的按钮上链接,或者发布完整的代码。 – Seb 2012-08-21 22:49:50