支持 IOS SDK 5 的 Facebook API

Posted

技术标签:

【中文标题】支持 IOS SDK 5 的 Facebook API【英文标题】:Facebook API which supports IOS SDK 5 【发布时间】:2012-03-04 08:03:22 【问题描述】:

我有一个 iPhone 应用程序正在向 Facebook 发送消息,它在 ios SDK 4 上运行良好,但是当尝试在 IOS SDK 5 上运行时,它无法运行,并显示释放和保留为错误。

我们也完成了“禁用 ARC”,并且 FB 文件编译得很好,但是我们的其他项目源不需要制作“禁用 ARC”,因为它是一个典型的 iOS 5 项目。如果我们“禁用 ARC”,那么我们必须在所有源中添加“释放”、“保留”等。没有“禁用ARC”的情况下使FB编译的解决方案是什么。是否可能?

我们如何解决这个问题?或发送有用的链接以下载在 IOS SDK5 上运行的 Facebook API。

【问题讨论】:

如果您关闭 ARC,您将摆脱这些错误(并获得一大堆新错误 :-) @kalyan Andra 你有你的解决方案吗...? 【参考方案1】:

这些错误即将出现,因为您使用启用 ARC 的类嵌入非 ARC 文件(Facebook 类)(我想,正如您提到的错误 retain,release。)。

我想简单解释一下,启用Automatic Reference Counting(ARC) 后,编译器会自动在程序的正确位置插入retainreleaseautorelease。您不再需要担心这些,因为编译器会为您完成。

我认为在ios 5 中使用Facebook 类(SDK),不需要另一个ios 5 兼容Facebook SDK。我想是的,Facebook 还没有创建ios 5 兼容facebook ios SDK。 所以在这里为了在ARC启用代码(ios 5)中使用这些 Facebook 类,你只需要为这些 Facebook 类禁用ARC(即我们向编译器暗示我们将要注意内存管理对于这些类(Facebook Classes))。

这样做之后,您将永远不会遇到这些错误。

为这些 Facebook 类禁用 ARC 后,您可以轻松创建运行(构建)应用程序而不会出错。

要禁用ARC,您只需要设置"-fno-objc-arc" 标志,看看你会怎么做。

1) 转到应用程序目标。

2) 选择构建阶段。

3) 编译源->为所有 Facebook 类设置 "-fno-objc-arc" 标志。

现在再次运行应用程序。

希望对你有帮助。

【讨论】:

【参考方案2】:

您可以为这些类禁用自动引用计数

只需按照步骤操作即可。您在 Targets -> Build Phases -> Compile Sources 中添加编译器标志。

xcode

使用的标志是-fno-objc-arc写完后回车!您必须双击 Compiler Flags 下行的右列。希望对你有帮助 谢谢:)

【讨论】:

以上是关于支持 IOS SDK 5 的 Facebook API的主要内容,如果未能解决你的问题,请参考以下文章

MonoTouch (Xamarin.iOS) Facebook 应用程序切换支持 iOS 5+

facebook-ios-sdk 是不是使用 iOS 6 Facebook 集成来支持登录而不打开本机 Facebook 应用程序?

适用于 iOS 4.0 的 Facebook sdk

Facebook SDK 错误 Domain=com.facebook.sdk Code=5 在 ios 中获取好友列表时

Facebook SDK 3.5.1 无法在 Facebook 登录时打开 Facebook 应用

iOS 5 中的 Facebook SDK 3.5 需要 Social.framework