【问题标题】:Disabling ARC... (AdMob SDK)禁用 ARC...(AdMob SDK)
【发布时间】:2012-08-31 20:49:43
【问题描述】:

我已经添加了运行 Admob SDK 所需的所有文件和框架,但问题是 ARC...

我的项目使用 ARC,但 AdMob 文件不使用 ARC。我知道您可以通过项目菜单下的 "Compile Sources" 部分禁用特定文件的 ARC -> Targets (App Name) -> Build Phases

问题在于 AdMob 文件未显示在“编译源”部分或任何其他部分中。您可以在 Project Navigator 中看到我的 AdMob 文件夹...

为什么这些文件不显示,以便我可以在它们上禁用 ARC?

【问题讨论】:

    标签: iphone objective-c xcode automatic-ref-counting admob


    【解决方案1】:

    看起来您不是在编译 Admob .m 文件,而是您在项目中包含的一个库,而您只是将 .h 文件用于接口。因此,您可能根本不需要担心 ARC v 非 ARC 问题。您可以经常在 ARC 项目中使用非 ARC 库。主要问题是该库是否符合Transitioning to ARC 中概述的规则,例如标准命名约定,其中返回带有+1 retainCount 的对象的唯一方法以allocnew、@ 开头987654325@和mutableCopy

    如果您在项目中编译库的源代码,则只需要 -fno-objc-arc 选项。

    【讨论】:

    • 此外,我强烈建议在您的工作区中以库/单独的 xcodeproj 的形式包含任何外部代码(如 Facebook SDK 或 SBJSON),即工作区包含一个 xcodeproj为您自己的应用程序代码和每个外部库(Facebook.xcodeproj,SBJSON.xcodeproj,...)一个 xcodeproj。这样每个项目/外部库都可以有自己的构建设置(包括打开或关闭 ARC)。比在任何地方添加 -fno-objc-arc 效率更高(尤其是如果您碰巧更新外部库或向其中添加文件而忘记了此标志)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多