【问题标题】:ARC file compilation issueARC文件编译问题
【发布时间】:2013-11-18 11:38:37
【问题描述】:

ProjectA 是 ARC,SubProject 是手动引用计数,即不是 ARC。

ProjectA 中嵌入了 SubProject,并将其构建为目标依赖项。所以我认为这意味着 SubProject 是否为 ARC 并不重要,因为 ProjectA 正在链接到已编译的单元。

但是,在 ProjectA 中,我从 SubProject 导入了一个标头,该标头包含不符合 ARC 的枚举。即(ARC 禁止 struct 中的 Object-C 对象)。

我是否遗漏了一些简单的方法来解决这个问题?

谢谢

【问题讨论】:

  • 您真的直接在 ProjectA 中使用结构吗?是的,包括标头不起作用,但是您可以将结构设为私有的实现,或者让它们使用 CFTypeRefs 而不是 NSObject 指针
  • 我明白了。好吧,如果它肯定行不通,而且我在项目设置和编译中遗漏的东西也不是很明显。然后我会解决它。谢谢
  • 我将 SubProject 转换为 ARC 来修复它。

标签: objective-c automatic-ref-counting


【解决方案1】:

使结构对象指针为 __unsafe_unretained,这样就可以了。 问题是,即使你的子项目是 MRR,父项目也可能有你的子项目的#imports,所以它的标题必须符合 ARC 要求。

如果您真的想要在其中包含 id 的普通旧 C 结构,则应使用 __unsafe_unretained。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多