我在我的应用中添加了MKMapView
。一旦我添加它就开始崩溃。但它运行良好,我可以看到地图正在加载iPhone 4s semulator。这可能是什么原因?我在调试控制台中得到Message from debugger: Terminated due to memory issue
。
这是什么原因?请帮我。 感谢
答案 0 :(得分:0)
MKMapView使用更多内存。所以在具有小RAM应用程序的设备中会崩溃。
你可以在viewWillDisappear中释放MKMapview使用的一些内存:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
mapView.mapType = MKMapTypeHybrid;
mapView.mapType = MKMapTypeStandard;
mapView.showsUserLocation = NO;
mapView.delegate = nil;
mapView = nil;
[mapView removeFromSuperview];
}
您可以尝试此操作来释放一些有助于防止您的应用崩溃的内存:
避免堆叠自动释放的对象 当您实例化NSString之类的对象而没有明确分配时,它们会一直存在,直到自动释放池的发布 - 通常直到您的应用退出。大量使用这些技术可能会导致RAM中出现大量垃圾。使用 NSString initWithContentsOfFile: 所以你可以稍后发布它而不是 NSString stringWithContentsOfFile: 。同样的规则适用于 UIImage imageNamed: - 建议不要将其用于图像加载。
处理内存警告 处理内存警告时卸载不必要的资源。即使你无法卸载任何你的东西电话 所有UIViewControllers中的 [super didReceiveMemoryWarning] 。这将默认释放一些资源,如非前视图上的UI控件。未能处理此事件可能会使iOS确定您的应用程序值得查杀。
考虑动画视图过渡的有限使用注意到像翻转过渡这样的动画会在执行时导致RAM使用率激增。此功能非常简洁,应该在许多情况下使用,但它可能会在负载很重的多任务环境中触发内存警告。特别是我们强烈建议避免动画OpenGL视图。
希望这有帮助。