【问题标题】:Enabling ARC is not showing my classes启用 ARC 不显示我的课程
【发布时间】:2013-10-26 19:29:40
【问题描述】:

我已按照指南启用 arc 。点击edit->refactor->convert to arc。 比我有一个显示类的复选框,但它们都是cocos2d 类,我看不到我的应用程序类(我创建的 2 个主要类)。指南说不要检查 cocos2d 类,但我没有其他需要检查的东西,因为我的不在那里。

所以,我不明白,当开始一个项目并创建一个类时 - 使用 ARC 是自动的吗?这就是为什么我在那里看不到我的课程?

我是否必须使用 cocos2d v2.0 检查 cocos2d 类的框?

我不明白如何准确处理以及何时自动使用 arc。

谢谢。

【问题讨论】:

  • Cocos2D 不是支持 ARC 的吗?那么你如何建议链接反对它?您是否将其构建为静态库?
  • @trojanfoe 为什么需要所有库都支持 arc 才能使用它?您可以在每个文件的基础上启用 arc...ARC 是编译时的东西而不是运行时的东西。
  • @BradAllred 我同意;但是,当您处理项目并且您知道项目中的所有文件都使用相同的内存管理方案时,它肯定会简化事情。但是,我想从 OP 那里听到一些话,让我知道他已经考虑到了这一切,并且在这一切之上。编辑:话虽如此,我同意; ARC 确实需要运行时支持。
  • @trojanfoe ARC 本身不需要运行时支持,但是,将弱引用归零显然需要运行时支持。我似乎无法找到有关运行时要求的实际文档。如果你有链接,请分享。
  • @trojanfoe 不完全是,但此讨论超出了问题的范围。我确实找到了 relevant docs 声明归零弱引用需要运行时支持(现在很明显),但看起来你仍然可以在没有运行时支持的情况下使用带有不安全指针的 arc。

标签: xcode cocos2d-iphone


【解决方案1】:

据我所知,是的,您的课程将在 ARC 下自动创建(假设它已在整个项目中启用)。 检查哪些文件在 ARC 下的最好方法是去

your project (left pane, Navigator) -> Build Phases -> Compile Sources

带有-fno-objc-arc 编译器标志的文件在 ARC 下

总结一下:将 cocos2d 设置为不使用 ARC 并检查您的课程是否使用 ARC(如果您想使用它)

注意:以上图片文件main.m、AppDelegate、HelloWorldLayer、IntroLayer、FirstStory当然是我自己创建的文件。

【讨论】:

  • 这很好,但我将如何禁用所有 cocos2d 文件使用 arc ?我知道如果我将项目设置为使用 arc(在构建设置中的编译器语言下),它会给出许多 cocos2d 错误。我想知道这样做的方法是什么,为什么这些指南使用重构菜单。
  • 很简单。只需输入 Build Phases,搜索 Compile Sources 双击文件对应行中的 Compiler Flags 列,您将看到弹出窗口。只需输入-fno-objc-arc,瞧!您的文件不在 ARC 下。注意:您可以选择多个文件,只需单击一次-fno-objc-arc 命令即可。
猜你喜欢
  • 2016-02-27
  • 2011-12-29
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
相关资源
最近更新 更多