我正在努力解决一个看起来很简单但它使应用程序运行大小为 30-35 MB 的问题。该应用程序已启用 ARC。这是场景。
UIViewcontroller
1)我从我的方法中调用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
类私有。?