MKMapView内存管理

Nar*_*tri 0 memory-management objective-c mkmapview ios

MKMapView在Objective-C中使用.应用程序占用45MB内存,但当MKMapView出现内存使用量增加到110 MB.这不是好iPhone 4和iPhone 4S.

请建议我优化内存的代码结构.

Dha*_*yas 7

好好处理MKMapKit需要注意内存管理.特别是如果您正在使用UITabbarController和设置MapView任何视图控制器.

如果您需要MKMapKit在您的应用程序中使用,我建议您MapViewviewWillAppearSuperview中初始化和删除viewDidDisappear.此外,您需要在从Superview中删除之前删除它的委托mapView.delegate = nil并制作MapView = nil.

Objective-C的

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    mapView.delegate = nil;
    [mapView removeFromSuperview];
    mapView = nil;
}
Run Code Online (Sandbox Code Playgroud)

迅速

override func viewDidDisappear(animated: Bool) {
    super.viewDidDisappear(animated)
    mapView.delegate = nil
    mapView.removeFromSuperview()
    mapView = nil
}
Run Code Online (Sandbox Code Playgroud)

通过这样做,地图占用的所有内存都是免费的.

请不要加MapView在你ViewController的故事板或XIB.以编程方式创建MapView.

希望它可以帮助您使用MKMapKit进行内存管理.