Unity中的ARC ObjC代码?

Posted

技术标签:

【中文标题】Unity中的ARC ObjC代码?【英文标题】:ARC ObjC code in Unity? 【发布时间】:2014-12-10 08:44:23 【问题描述】:

我包含了一些长期使用的类(用 ARC Objective-C 编写),它们被我正在编写的 ios 插件使用。我猜 Unity 本身不会输出默认启用 ARC 的项目,因此编译器会抱怨在覆盖的 dealloc 方法中缺少 [super dealloc] 调用。

那么,我们不能为我们的 iOS 插件使用 ARC 代码,或者有没有办法将某些类定义为从 Unity 编辑器启用 ARC?

我想如果我们在 Xcode 的“编译源代码”中的 ARC 类中添加“-fobjc-arc”就可以了。 但是,这并不可行,因为 Unity 似乎在每次从 Unity 导出到 Xcode 时都会覆盖这些设置。没有人会为每个构建添加 -fobjc-arc。我不会。

使用 Unity 4.6。

【问题讨论】:

【参考方案1】:

您可以在从 unity 创建 xcode 项目时选择附加。这样就不需要每次都重新生成项目,并且您的链接器设置不会被覆盖。

【讨论】:

现在的问题是我们(以及大多数认真发布到 iOS 的人??)使用 iOS 的构建脚本,每次按下“CI 按钮”都会创建一个新的 xcode 项目文件夹。我已经竭尽全力编写将所有内容组合在一起的脚本,添加正确的框架并根据需要编辑 Info.plist。 Append 真的不适用吗?【参考方案2】:

在 Unity 编辑器 -> 项目窗口 -> 检查源文件 -> 检查器窗口 -> 您可以在窗口底部看到“编译标志”标签。在那个标签上写“-fobjec-arc”。

【讨论】:

这个答案没有意义。您说的是“Unity Editor”,但听起来更像是在描述 Xcode。还有-fobjec-ard不是正确的标志吗? 同意。我使用 Unity 4.6,并且可以在选择 .m 文件后在 Inspector 窗口中设置任何标志。这可能在 Unity 5 中有效吗? 好的,我刚刚找到了一个似乎指向那个的页面。 SnakeEyes 所描述的似乎是 Unity 5 的一个功能。link 无论如何,标志应该是-fobjc-arc 等等。 我附上了一张截图。也许文件扩展名应该是“.mm”。

以上是关于Unity中的ARC ObjC代码?的主要内容,如果未能解决你的问题,请参考以下文章

是否允许使用 ARC 在 ObjC 中调用 [obj copy]?

iOS 中 ARC 项目 兼容 MRC

Xcode5 中无法设置 -fno-objc-arc

尽管标记了文件 -fno-objc-arc,但 ARC 禁止在结构或联合中使用 Objective-C 对象

ARC简介以及工程中ARC与非ARC的混合

ARC简介以及工程中ARC与非ARC的混合