我有一个正在向 Facebook 发送消息的 iPhone 应用程序,它在 IOS SDK 4 上运行良好,但当尝试在 IOS SDK 5 上运行时,它无法运行并显示发布和保留为错误。
我们也完成了制作“Disable ARC”并且 FB 文件编译得很好,但我们的其他项目源不需要制作“Disable ARC”,因为它是一个典型的 iOS 5 项目。如果我们“禁用 ARC”,那么我们必须在所有源中添加“发布”、“保留”等。没有“禁用ARC”的情况下使FB编译的解决方案是什么?是否可能?
我们如何解决这个问题?或发送有用的链接以下载在 IOS SDK5 上运行的 Facebook API。
最佳答案
出现这些错误是因为您将非 ARC 文件(Facebook 类)嵌入到启用了 ARC 的类中(我想,正如您提到的错误 retain,release
。)。
我想简单说明一下,启用Automatic Reference Counting(ARC)
,编译器会自动插入retain
,release
和 autorelease
在你程序的正确位置。您不必再担心这些,因为编译器会为您完成。
我认为在 ios 5
中使用 Facebook Classes(SDK),不需要另一个 ios 5
兼容 Facebook SDK
。我是这么认为的, Facebook 尚未创建与 ios 5
兼容的 facebook ios SDK
。
因此,为了在 ARC
启用代码 (ios 5
) 中使用这些 Facebook 类,您只需为这些 Facebook 类禁用 ARC
(也就是说,我们向编译器暗示我们将负责这些类的内存管理(Facebook 类
))。
这样做之后,您将永远不会遇到这些错误。
为那些 Facebook 类禁用 ARC
后,您可以轻松地创建 Run(build)Application 而不会出错。
对于禁用 ARC
,您只需要设置 "-fno-objc-arc"
标志,看看您将如何做到这一点。
1) 转到应用程序目标。
2)选择构建阶段。
3) Compile Sources->Set "-fno-objc-arc"
Flag for all Facebook Classes.
现在再次运行应用程序。
希望对你有帮助
关于iphone - 支持 IOS SDK 5 的 Facebook API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9553318/