我最近遇到了一个问题,我的MapView似乎使用的内存比它应该多。我已经禁用了所有填充注释和下载数据等的方法,并将应用程序基本上留给了地图视图。地图视图在我通过地图使用的名为Map Manager的单个对象中初始化和分配,因为我在多个视图中使用地图。所有地图处理方法也都驻留在此对象中。在运行我的应用程序时,缩放,划桨,平移等非常不稳定和缓慢。我正在运行最新的iPad Mini。
在iOS7上运行应用程序时,在xCode内部,内存利用率报告的内存大约为180MB。如果我运行应用程序,然后同时打开Apple Maps并玩它,我已经导致我的应用程序因错误而崩溃:由于内存压力而终止。
以下是运行分配测试时的地图初始化程序和工具配置文件:
+ (id)sharedInstance
{
static LBMapManager *mapManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// Intialize the class
mapManager = [[self alloc] init];
// Intialize map
mapManager.mapView = [[MKMapView alloc] init];
mapManager.mapView.mapType = [[LBSettings getObjectForKey:kLBSettingsMapType] intValue];
mapManager.mapView.showsBuildings = YES;
mapManager.mapView.showsPointsOfInterest = YES;
mapManager.mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
});
return mapManager;
}
照片:
答案 0 :(得分:2)
是否可能启用了NSZombies?
您应该在检查内存问题时随时禁用此选项,因为它会在内存中保留所有已创建的对象,从而导致内存问题。