我在 Objective-C 中使用 MKMapView
。应用程序占用 45MB 内存,但当 MKMapView
出现时,内存使用量增加到 110MB。
这不是好的 iPhone 4 和 iPhone 4S。
请建议我优化内存的代码结构。
最佳答案
使用 MKMapKit
需要注意内存管理。特别是如果您正在使用 UITabbarController
并在任何 View Controller 中设置 MapView
。
如果您需要在您的应用程序中使用MKMapKit
,我建议您在viewWillAppear
中初始化MapView
并在 中从Superview 中删除viewDidDisappear
。此外,您还需要删除它的委托(delegate) mapView.delegate = nil
并在从 Superview 删除之前制作 MapView = nil
。
objective-C
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
mapView.delegate = nil;
[mapView removeFromSuperview];
mapView = nil;
}
迅速
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
mapView.delegate = nil
mapView.removeFromSuperview()
mapView = nil
}
通过这样做,您所有被 map 占用的内存都将被释放。
请不要在 Storyboard 或 xib 中的 ViewController
中添加 MapView
。以编程方式创建 MapView。
希望它能帮助您使用 MKMapKit 进行内存管理。
关于ios - MKMapView 内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34153265/