快速推送和弹出视图控制器很多次崩溃

时间:2015-10-13 11:05:36

标签: ios objective-c memory-management garbage-collection

我有一个视图控制器A,其中有很多项供用户选择。用户可以按下它,这将推动另一个视图控制器B. 然后,用户可以返回选择的其他项目。

这种情况在90%的情况下都很好,但是如果用户速度很快并且很多时候这样做,应用程序会崩溃并显示错误消息:

  

“由于内存错误而终止”

这个视图控制器B是一个很大的,所以我不能真正发布任何代码,但我检查保留对象,内存泄漏没有运气。我的理论是垃圾收集器跟不上节奏,所以我可能需要在我的对象周围包裹一个@autoreleasepool

你有什么好的想法/做法吗?

更新

尝试这样做。拿一个随机视图控制器并添加此

MKMapView *mapView = [[MKMapView alloc]initWithFrame: CGRectMake(100, 100, 500, 500)];
[self.view addSubview:mapView];

按下此视图控制器并弹出它。重复约15次,应用程序将崩溃。

1 个答案:

答案 0 :(得分:0)

我通过添加后退按钮修复了问题,当按下此按钮时,我手动删除了mapview和引用。我本以为iOS会自动执行此操作,但这似乎对我有用。