我正在处理的iPad应用程序存在内存问题: 它只有3个视图控制器和一个导航控制器。 我使用push segue将视图控制器从A交换到B,然后使用push segue将视图控制器交换到C,然后使用popToRootViewController指令再次将视图控制器交给A.ARC和故事板的内存问题
我已经在所有的视图控制器上实现了didReceiveMemoryWarning,只是为了知道会发生什么: 视图B正确地从内存卸载,但视图C似乎重复自身并消耗内存! 当我触发内存警告,我可以看到几个视图C回答...
它看起来不像循环保留,因为我宣布我所有的父母引用为弱,并且因为泄漏仪器不检测任何泄漏,也不保留周期,但记忆力增加。
,当使用真实iPad进行测试时,这会导致崩溃。
我该怎么办?我可以在哪里看? 是否可以要求导航控制器释放其所有以前的对象,但当前屏幕上的对象?
编辑:
鉴于didload,我增加了一些观察家如下:
NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter];
[dnc addObserver:self selector:@selector(undoManagerDidUndo:) name:NSUndoManagerDidUndoChangeNotification object:undoManager];
[dnc addObserver:self selector:@selector(undoManagerDidRedo:) name:NSUndoManagerDidRedoChangeNotification object:undoManager];
是有可能,这样做使该DNC保持一个参考保留自我的地方?
您必须发布代码。 :) –
代码的哪些部分可能会有用? – Diwann
如果你的观点是alloc/inited,发生“交换”,你的didReceiveMemoryWarning等 –