【问题标题】:While using MKMapview causing MBs of memory usage and using ARC it not releasing memory when View Disappears在使用 MKMapview 导致 MB 的内存使用和使用 ARC 时,当 View 消失时它不会释放内存
【发布时间】:2015-11-18 10:01:04
【问题描述】:

使用 Xcode 6.0 和 iOS 8.4,我尝试过的是:

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];

    mapView.mapType = MKMapTypeHybrid;
    mapView.mapType = MKMapTypeStandard;
    mapView.showsUserLocation = NO;
    mapView.delegate = nil;
    [mapView removeFromSuperview];
    mapView = nil;
}

我正在使用 ARC,当视图消失时它不会释放内存。

【问题讨论】:

  • 您如何验证是地图正在消耗内存?
  • 我也遇到过这种行为,但我不认为这是一个错误。您是否尝试过添加地图并再次将其删除?每次添加和删除都会增加内存吗?在我的应用程序中,情况并非如此。我同意第一次显示地图时分配了一些 MB,如果我查看内存使用情况,它们仍然被分配,但即使我多次显示地图视图,它也是稳定的。所以我认为这不应该是泄漏。我猜这只是因为 MapKit 是延迟加载的。
  • 是的,Mapview 没有释放它的内存。任何帮助都会很棒。

标签: ios objective-c iphone mkmapview mapkit


【解决方案1】:

您是否厌倦了让 MapView 或视图控制器成为弱引用?

例如:如果您要推送到带有地图视图的视图控制器。将其分配给弱属性。

@property (weak,nonatomic) UIViewController *mapViewController;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2012-04-17
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多