2

我必须将简单的 ARC 代码转换为非 ARC。虽然它相对简单,但我错过了实例变量赋值 self.var = xxx,而是写了 var = xxx。

虽然在 ARC 版本中它没有造成任何问题 - 在非 ARC 版本中它肯定会导致崩溃。

这是否意味着实际上可以在没有 self 的情况下在 ARC 中分配实例变量。所以他们得到保留?

谢谢!

ps 学习如何在 ARC 中编程的最佳资源是什么,这样可以避免明显的错误 - 到目前为止,我根本没有发现任何问题,但我很紧张,因为我可能错过了一些东西

4

2 回答 2

1

这是否意味着实际上可以在没有 self 的情况下在 ARC 中分配实例变量。所以他们得到保留?

是的,有点。

id obj_;

与此相同。

id __strong obj_;

obj_ 对分配的对象具有强引用。在 ivar 的所有者对象被解除分配之前,分配的对象不会被解除分配。

请参阅LLVM 文档或仍在 NDA 下的 Apple ARC 参考。

于 2011-09-14T21:16:17.297 回答
0

在此处输入图像描述

在此处输入图像描述

自动引用计数禁止“dealloc”的显式消息发送</p>

我分享了一个在新的 iOS5 SDK 中启用旧库编译的技巧。

单击项目。

点击目标。

选择构建阶段选项卡。

选择要在其中关闭 ARC 的多个文件。

按 ENTER / 按 Enter 键

键入“-fno-objc-arc”(不带引号,如图所示)

于 2012-01-30T10:50:28.697 回答