当释放时,ARC会以递归方式释放视图控制器中的所有属性吗?换句话说,何时“取消”必要的属性(ARC不会为你清理内存)?听起来像循环依赖是一种情况,但我很好奇是否还有其他重要案例。
答案 0 :(得分:2)
根据苹果文件
而不是你必须记住何时使用保留,释放和 自动释放,ARC评估对象的生命周期要求 并自动为您插入适当的内存管理调用 在编译时。编译器还生成适当的dealloc 方法给你。一般来说,如果你只使用传统的ARC 只有在您需要时,Cocoa命名约定才是重要的 与使用手动引用计数的代码互操作。
问题的答案
ARC会以递归方式释放视图控制器中的所有属性 中解脱出来?换句话说,当"无效"必要的财产 (ARC不会为你清理内存)?
根据Apple的文档,iOS编译器将插入适当的版本/使属性变量为nil。因此,我们必须注意适当地声明属性变量,例如,使用弱,强等等。
以下链接的更多参考