【问题标题】:Using Non-ARC Code in an ARC-Enabled Project - Adding Facebook在启用 ARC 的项目中使用非 ARC 代码 - 添加 Facebook
【发布时间】:2012-01-31 20:58:06
【问题描述】:

当我创建我的项目时,我让它支持ARC,所以我的项目将支持 iOS 4.3 及更高版本。

现在我需要将 Twitter 和 Facebook 集成到其中。公司提供的 Facebook 和 Twitter 框架都不支持ARC

大部分文件都有dealloc,并释放了它的变量。有人说要废弃该项目并重做它以禁用 ARC。但是,我负担不起,因为我已经完成了大部分工作。

我添加了FBConnect 文件(其中有 4 个)并添加了-fno-objc-arc,如this tutorial 中所述。我还是得到了

file://localhost/Users/illepmorgan/Documents/Projects/illep/untitled%20folder/alphaproject/alphaproject/FBRequest.m: error: Automatic Reference Counting Issue: Existing ivar '_delegate' for unsafe_unretained property 'delegate' must be __unsafe_unretained

我需要帮助,我不能再这样做了。

【问题讨论】:

  • 您确定您正确地遵循了指南吗?仔细检查您是否已将标志添加到所有文件中。
  • 是的,我做到了。我又试了一遍。我收到了我在上面添加的消息。
  • 有谁知道如何解决这个问题?

标签: iphone objective-c facebook twitter automatic-ref-counting


【解决方案1】:

确保将 -fno-objc-arc 标志添加到每个实现文件(.m 文件)。

然后清理项目(项目菜单 -> 清理)并再次构建。在课堂上这样做时,我有时不得不清洁和建造两次。好像是个小bug。

【讨论】:

  • 您还必须添加 JSON 文件(位于文件夹中)。那么我是否也必须为这些文件添加标志?在 target 中未识别 JSON 文件以添加标志。我现在该怎么办?
  • JSON 文件不是 Objective-c 代码,你不会编译它们,所以这个标志不适用。
  • 好吧,FBConnect Facebook 框架有一个 JSON 文件夹,当您查看该文件夹时,您会发现很多 Objective-C 代码。所以我也必须flag他们吗?
  • 是的,任何objective-c实现文件(.m),不管文件夹。
【解决方案2】:

实际上有一种在混合 ARC 和 Facebook none ARC 中工作的简单方法。 请参阅我的帖子了解如何使用它 http://nabtech.wordpress.com/2012/02/02/facebook-ios-sdk-and-arc/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    相关资源
    最近更新 更多