【发布时间】:2012-09-20 17:37:45
【问题描述】:
我有一个使用以下代码从视图控制器转换到视图控制器的应用程序:
[self addChildViewController:self.aNewViewController];
[self transitionFromViewController:self.currentViewController
toViewController:self.aNewViewController
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromBottom
animations:nil
completion:^(BOOL finished) {
[self.aNewViewController didMoveToParentViewController:self];
[self.currentViewController removeFromParentViewController];
self.currentViewController=self.aNewViewController;
}];
当我在 iOS 5.0 设备上使用 Xcode 4.3 运行它时,它运行得非常流畅并且使用了大约 30 - 50 mb。当我在任何设备上使用 Xcode 4.5 运行它时,每次我更改视图控制器时,应用程序都会从 30 - 70 - 100 - 130 mb 跳跃时崩溃。每次我离开视图控制器时似乎都没有释放内存。我正在使用 ARC。
提前感谢您提供的任何帮助。
【问题讨论】:
-
使用 Instruments 并找出哪些对象没有被释放,然后更新问题。
-
我使用仪器运行了一个 heapshot 分析,它指向这一行:[self transitionFromViewController: self.currentViewController...etc];几个月来,我一直在使用此代码从一个视图控制器转换到另一个视图控制器 - 没有任何问题。一旦我升级到 4.5,它现在导致我的应用程序由于内存问题而崩溃。知道为什么以及如何解决这个问题吗?
标签: ios xcode memory view uiviewcontroller