在Phonegap iOS项目上启用ARC

时间:2013-06-06 13:06:12

标签: ios cordova automatic-ref-counting xcode4.5

我使用phonegap-2.7.0中的create创建了一个模板项目。该项目将不启用ARC,我想将其转换为ARC。

我转到 Edit -> Refractor -> Convert to Objective-C ARC 取消选择 libCordova.a(as mentioned hereupgrade guide 2.0.0 to 2.0.1)并尝试转换为弧。一切都编译得很好,但我最终得到了这个链接器错误。

我正在使用Xcode 4.5

  

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo:   无法弄清楚架构类型:   /Users/administrator/Library/Developer/Xcode/DerivedData/ServerSockPG-cbdtpihmguyehtaqenaxuqiwkpyz/Build/Intermediates/ServerSockPG.build/Debug-iphoneos/ServerSockPG.build/Objects-normal/armv7/ServerSockPG   命令

     

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo   退出代码1失败

请指导我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

“ARC在Xcode 4.2中可用,最高版本是XCODE 6.0,仅在使用Clang(又名”Apple LLVM编译器“)进行编译时。设置被调用,显然,”Objective-C自动引用计数“。它开了,你走了。

如果您正在处理现有代码,更改此设置将产生大量错误。 ARC不仅为您管理内存,还禁止您自己尝试。使用ARC时手动发送保留/释放/自动释放是非法的。正常的非ARC Cocoa代码充斥着这些东西,你会遇到很多错误。

幸运的是,Xcode提供了一种转换现有代码的工具。选择编辑 - >重构...... - >转换为Objective-C ARC ......并且Xcode将指导您转换代码。虽然可能在某些情况下需要帮助确定要做什么,但这个过程应该基本上是自动的。“