答案 0 :(得分:2)
首先:xib顶层的视图(或其他对象)在其对应的视图控制器中不应具有weak
种属性。与视图层次结构中的视图不同,它们在加载xib后没有所有者,因此无论如何它们都会被释放。
现在你似乎直接使用ivars(为什么?),所以我实际上不确定,但我认为这不会有所作为。假设Interface Builder接受那些作为出口并设置它们,它们很快就会在没有所有者的情况下消失。
从这个角度来看,你已经保存了记忆......
如果我不了解您的项目,我无法说清楚,但是您在遇到nil
问题时没有寻求帮助这一事实让我猜你已经掌握了这些问题。在其他地方观看。要释放它们,您需要设置任何属性( 希望很快使用此属性)将它们强烈地引用到nil
。 ARC为您完成剩下的工作。不使用ARC?开始使用它......
我建议重组一下。将视图控制器(我猜这是某种FirstFlyerViewController
)强属性提供给视图(如果您肯定需要将它们放在视图层次结构之外,否则,只需添加他们作为某个地方的子视图)。使用它们,一旦你弹出视图控制器和它就会被释放(注意这通常由框架而不是你自己完成),它们会随之被释放。