3

我有一个应用程序项目和 facebook 示例登录项目。我需要将两者结合在一起,以便用户提示使用 facebook 登录然后引导到应用程序。我不知道如何开始以及我的方法是否正确。

我做了什么:只需在我的应用程序中插入 delegate.m、delegate.h、login.m、login.h、login.xib 文件作为另一个类组。复制 login.xib 中的视图并将其粘贴到 mainwindow.xib 中。将类自定义为 FBLoginView(作为选项提供)。

我得到的错误:

2012-12-05 14:43:17.370 myapp[2312:c07] Interface Builder 文件中的未知类 FBLoginView。2012-12-05 14:43:17.400 myapp[2312:c07] Interface Builder 文件中的未知类 FBLoginView。2012-12-05 14:43:17.403 myapp[2312:c07] * 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合键值编码的键委托。* First throw call stack: (0x19ce012 0x2181e7e 0x1a56fb1 0x652711 0x5d3ec8 0x5d39b7 0x9d2573 0x5fe428 0xb9f0cc 0x2195663 0x19c945a 0xb9dbcf 0xb9f98d 0x981ceb 0x982002 0x980ed6 0x992315 0x99324b 0x984cf8 0x281edf9 0x281ead0 0x1943bf5 0x1943962 0x1974bb6 0x1973f44 0x1973e1b 0x9807da 0x98265c 0x2c8d 0x2bc5) libc++abi.dylib: terminate called throwing an exception (lldb)

无论如何要解决这个问题,还是应该有更好的集成方式?

请帮忙谢谢。

4

3 回答 3

11

我昨天有同样的问题。有两种解决方案:

  1. 转到目标设置-> 构建设置,在Other Linker Flags写入-ObjC
  2. 在 App Delegate 中,更新 didFinishLaunchingWithOptions 函数并添加[FBLoginView class],例如:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary     *)launchOptions
{
    [FBLoginView class];

    // Override point for customization after application launch.
    return YES;
}

参考:https ://developers.facebook.com/ios/login-ui-control/

@shashwat 更新:

添加标志始终不是最佳选择

您可能还想将 -ObjC 链接器标志添加到您的项目中。但是,如果您选择这样做,您将增加可执行文件的大小(由于额外的 SDK 目标代码加载到您的应用程序中)。您可以在我们的故障排除指南中了解有关此权衡、-ObjC 标志的确切作用以及如何设置它的更多信息。

添加[FBLoginView class];didFinishLaunchingWithOptions解决此问题。

于 2013-08-22T17:30:08.197 回答
0

我正在提供一个用于在 facebook 上发布的简单项目。请检查一下。您还需要一个来自 facebook 的 API 密钥,或者从您正在使用的示例代码中获取它,就像我在下面提供给您的那样,但它实际上只会显示项目中的内容。或者从 Facebook 开发者帐户获取您自己的密钥,制作它然后在项目中使用它。

http://github.com/reallylongaddress/iPhone-Facebook-Graph-API

于 2012-12-05T07:57:16.543 回答
0

我遇到了同样的问题,这个文档对于解决问题很有价值。(请参阅本页的“图形”部分)

https://developers.facebook.com/docs/ios/login-ui-control/

它也可能对您有所帮助。

于 2013-11-24T01:15:06.420 回答