2

我正在努力解决一个看起来很简单但它使应用程序运行大小为 30-35 MB 的问题。该应用程序已启用 ARC。这是场景。

UIViewcontroller1)我从我的方法中调用a (viewController实例是方法的本地实例)&在将其推送到NavigationController我将本地实例设置为nil之后。

    btMapViewController *routeMap = [[btMapViewController alloc]init];
        [routeMap setSourcLocation:[txtsource text]];
        [routeMap setDestinationLocation:[txtDestination text]];
        [routeMap setNightFareOn:addNightCharge];
        [self.navigationController pushViewController:routeMap animated:YES];
        routeMap = nil;

2) 新推送的控制器初始化MKMapView并在其上绘制路线。该应用程序现在运行在 35-40 MB 的内存上,是第 1 步之前运行的内存的 5 倍。

@interface btMapViewController ()
@property(nonatomic, strong) MKMapView *mapView;
@end

3)现在,如果我弹出UIViewcontroller(在步骤 1 中加载的那个),应用程序在 30-34 MB 的内存上运行。

我检查了内存跟踪,它很清楚。那么谁持有记忆呢?

是 MKMap 是接口实现的一部分导致了这个问题,还是我应该将其设为btMapViewController类私有。?

4

0 回答 0