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]?