自动引用计数问题 - PhoneGap

Posted

技术标签:

【中文标题】自动引用计数问题 - PhoneGap【英文标题】:Automatic Reference Counting Issue - PhoneGap 【发布时间】:2013-03-07 09:13:48 【问题描述】:

我已尝试使用 PhoneGap + Xcode 4.2 创建我的 HelloWorld 应用程序,具体步骤如下链接所述:

http://docs.phonegap.com/en/2.5.0/guide_getting-started_ios_index.md.html#Getting%20Started%20with%20iOS

但是当我在模拟器上运行我的 HelloWorld 应用程序时..它给出了我的自动引用计数问题错误。

【问题讨论】:

你能发布完整的错误信息吗?您的屏幕截图仅显示部分错误。 CDVAccelerometer 是从其他来源添加到项目中的吗? @Shivam 请浏览上面的快照...并帮助...我已经在我的项目中禁用了 ARC...它紧随其后...我正在使用 Xcode 4.2(即在创建项目时没有给我任何 ARC 复选框..不知道为什么)和 Phone-Gap 2.4 @VarunMehta 你解决过这个问题吗?我在 Cordova 2.6.0 和 CDVCamera.m 文件中遇到了同样的问题。 【参考方案1】:

出现此错误的原因是您的项目 CordvaLib 启用了 ARC。但是,您的 CDVAccelerometer 类未启用 ARC。要从 ARC 中排除文件,请使用 -fno-objc-arc 标志

在构建阶段 > 编译源代码

【讨论】:

嘿 Rushi,我通过在 Target-->Build Setting 下禁用“Objective-C ARC flag”在我的项目中禁用了 ARC。我也试过你的方法。现在它给出“语义问题 - 在许多地方使用未声明的变量 - 任何线索?” @VarunMehta :似乎你搞砸了一些文件。当编译器没有得到文件时,它会给出这个错误。无论您在哪里收到此错误,只需检查您的项目中是否存在文件、类或变量。 我什么也没做,我只是通过给出以下命令并运行它从终端创建了我的应用程序:Navneet:bin hitech$ cd /Users/hitech/Desktop/VARUN_Mac/PhoneGap/phonegap-2.2.0/lib /ios/bin Navneet:bin hitech$ ./create ~/Documents/Cordova22/HelloWorld com.tcs.mobility.HelloWorld HelloWorld 我在一个新创建的项目中也遇到了非常相似的问题。插件的m 文件未在构建阶段> 编译源代码 中列出。手动将文件添加到源列表,并将-fno-objc-arc 标志添加到它,并没有解决问题。这不是添加标志的正确方法吗?【参考方案2】:

在创建新项目时,它会询问“使用自动引用计数”并带有复选标记。如果您不使用 ARC,请取消选中复选标记。

如果您不想为唯一的特定类使用 ARC,则 ProjectSettings -> Build Phases -> Complile Sources -> Compilerflag。点击你的班级旁边并设置

-fno-objc-arc

现在只有选定的类被禁用 ARC。

【讨论】:

请看我上面的评论。 检查未声明的变量。或显示未声明的代码行 在 CDVPlugin.m 和 CDVFileTransfer.m 中,我遇到了这些错误

以上是关于自动引用计数问题 - PhoneGap的主要内容,如果未能解决你的问题,请参考以下文章

swift 学习之自动引用计数

自动引用计数混淆

Objective-C - 弱属性 - getter autoreleases(自动引用计数)

Objective-C 自动引用计数和垃圾回收有啥区别?

自动引用计数 (ARC) 中的 NSThreads

新的自动引用计数机制是如何工作的?