0

老实说,FB 让我有点发疯——但这只是一个旁注……

我有点放弃了寻找一种无需离开我的应用程序并打开 Safari 或 facebook 应用程序就可以验证用户身份的方法(这只是无缘无故地破坏了整个用户体验)。

不管怎样,既然他们坚持,我别无选择。但是:FB 的所有示例都处理 AppDelegate 中的 FBSession。恕我直言,那不属于它。我的应用程序并不完全围绕 FB,它只是将一些东西上传到用户时间线的一部分(如果她真的想要的话)。因此,我想在处理 FB 上传的 viewController 中处理整个 FBSession 内容。

但是当用户进行身份验证时,FB 希望我在我的 AppDelegate 中实现以下内容:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // attempt to extract a token from the url
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                        withSession:self.session];
}

但是在这个阶段,我self.session的 AppDelegate 中没有。如何将其传递给我的 ViewController?我可以把它存放在某个地方吗?我找到了一个创建单例的类( http://barrycenter.com/BAM!coding/2011/07/simplifying-facebook-ios-sdk/ )。但它适用于 SDK 的过时版本,我不知道如何更改它,以便它适用于新的 SDK。创建一个 Singleton 对我来说似乎是个好主意 - 所以有人能指出我如何使用最新的 SDK (3.8) 做到这一点的正确方向吗?

4

0 回答 0