【问题标题】:Enabling ARC on Phonegap iOS project在 Phonegap iOS 项目上启用 ARC
【发布时间】:2013-06-06 13:06:11
【问题描述】:

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

我去了 Edit -> Refractor -> Convert to Objective-C ARCunselected libCordova.a(as mentioned hereupgrade guide 2.0.0 to 2.0.1)并尝试转换为 ARC。一切都正确编译,但最后我得到了这个链接器错误。

我使用的是 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

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

【问题讨论】:

  • 转到构建设置 -> 架构并确保选择的架构是 armv7、armv7s

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


【解决方案1】:

“ARC 在 Xcode 4.2 中可用,最新的更高版本是 XCODE 6.0,并且仅在使用 Clang(又名“Apple LLVM 编译器”)编译时。显然,该设置被称为“Objective-C 自动引用计数”。转开着就走。

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

幸运的是,Xcode 提供了一个转换现有代码的工具。选择 Edit -> Refactor... -> Convert to Objective-C ARC...,Xcode 将指导您完成代码转换。尽管在某些情况下可能需要帮助来确定要做什么,但该过程应该在很大程度上是自动的。”

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2012-02-19
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    相关资源
    最近更新 更多