【问题标题】:KeychainItemWrapper ArcifiedKeychainItemWrapper 弧形
【发布时间】:2013-01-03 19:12:10
【问题描述】:

我已经从 GitHub 下载了最新版本的 KeyChainItemWrapper,但是在编译时给我这个错误:这个代码必须在启用 ARC 的情况下编译!

所以,我尝试通过以下方式对我的项目进行 Arcified:编辑-->重构-->转换为 Objective-C ARC, 并运行转换器,但它给了我同样的错误......

此错误的根源来自 KeyChainItemWrapper.m 中存在的此代码

#if ! __has_feature(objc_arc)
#error THIS CODE MUST BE COMPILED WITH ARC ENABLED!
#endif

如何开启 objc_arc 功能??

谢谢!

【问题讨论】:

  • 检查这个devforums.apple.com/message/533729#533729。您需要登录才能查看。
  • 从 Apple 的 GenericKeychain 示例应用程序中获取原始的非 ARC KeychainItemWrapper 类。
  • 为什么推荐拿非ARC版本??使用ARC不是更好地避免释放和泄漏吗??
  • @Shvalb 我想你是在回复我。我以为您有一个非 ARC 项目,并且遇到了KeychainItemWrapper 的 ARC 版本的问题。由于您拥有 KeychainItemWrapper 的 ARC 版本,因此您听起来好像只是尝试转换为 ARC。所以我建议非ARC KeychainItemWrapper。如果您在尝试转换的非 ARC 代码中混入了一些 ARC 代码,Xcode 的 ARC 转换工具会非常痛苦。如果您拥有所有非 ARC 代码,则转换会容易得多。
  • @rmaddy : 你有 ARC 版本的 KeychainItemWrapper 的链接吗?

标签: objective-c ios automatic-ref-counting


【解决方案1】:

进入构建阶段,编译源代码,找到该文件的源代码,双击并为其标志添加“-fobjc-arc”:)。这将让您只用 arc 编译该文件并在非 arc 项目中使用它

【讨论】:

  • 如果这是真的,您将不会收到此错误。再确认一次。 :P
【解决方案2】:

这已经发布了一段时间,但我遇到了同样的问题,所以我会在这里发布。

如果您在转换时项目中已有启用 ARC 的代码,则会引发错误。只需注释掉这些行,以便它们阅读:

/*#if ! __has_feature(objc_arc)
#error THIS CODE MUST BE COMPILED WITH ARC ENABLED!
#endif*/

继续尝试转换为 ARC,并在转换成功后取消注释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多