我必须将简单的ARC代码转换为非ARC。虽然它相对简单,但我错过了一个实例变量赋值self.var = xxx,而是写了var = xxx。
虽然在ARC版本中它没有造成任何麻烦 - 在非ARC版本中它肯定会导致崩溃。
这是否意味着在没有self的情况下在ARC中分配实例变量实际上是可以的。所以他们得到保留?
谢谢!
ps什么是学习如何在ARC中编程的最佳来源,以避免出现明显的错误 - 到目前为止,我没有发现任何问题,但我感到紧张,我可能错过了什么
答案 0 :(得分:1)
这是否意味着在没有self的情况下在ARC中分配实例变量实际上是可以的。所以他们得到保留?
是的,有点。
id obj_;
与此相同。
id __strong obj_;
obj_对指定的对象有强大的参考。在取消分配ivar的所有者对象之前,不会解除分配的对象。
请参阅LLVM document或仍在NDA下的Apple的ARC参考资料。
答案 1 :(得分:0)
自动引用计数禁止'dealloc'的显式消息发送
我已经分享了在新的iOS5 SDK中启用旧库编译的技巧。
点击项目。
点击目标。
选择构建阶段标签。
选择要关闭ARC的多个文件。
按ENTER /按Enter键
键入“-fno-objc-arc”(不带引号,如图所示)