我的应用程序存在内存问题,
我有一个基于导航的应用程序,如果我推送、弹出和推送我的所有控制器,该应用程序将由于内存过载而关闭。
我认为这就是我们所说的保留周期:
我有一个自定义导航控制器:MyNavController
,这个控制器是我的根控制器,并推送主控制器UIViewController
:MyMainController
,当应用程序启动应用程序时使用大约 130 MB 内存,当我推送一个新控制器时:内存上升到 160 然后我弹出这个控制器:内存仍然是 160(正好是 159)然后我推动另一个视图控制器:内存上升到 190 MB ...内存永远不会下降。
你能确认我这是一个保留周期吗?
如果我在弹出视图控制器时没有错,那么内存应该减少视图控制器内存大小吗?
我总是在我的属性(按钮、视图、customView、customObject ...)中使用强,但是当我在我的二级控制器中设置断点到 dealloc 方法时,我知道它被调用了,所以应该释放控制器?
我尝试了一些东西:我做了一个空
UIViewController
并将我的 xib 中的视图设置为我的一个未发布的控制器,所以它可能比清晰更重,所以这个控制器没有代码行,只是一个 .h 和 .m 没有没有自定义代码,当我推动这个控制器时,内存会上升,当我弹出它时,内存不会下降!我真的不明白我要寻找什么,我必须在我的 llok 上寻找MainViewController
吗?还是在控制器中我推入堆栈?
我只需使用以下命令加载我的控制器:
GeoControllerViewController *aGeoController = [[GeoControllerViewController alloc] initWithNibName:@"GeoControllerViewController" bundle:nil];
aGeoController.dictionnaryModele = _dicCours;
[self.navigationController pushViewController:aGeoController animated:YES];
提前致谢。