A页面上放一个UITableView,它的每个单元格是不同药店的信息,点击以后会跳转到B页面,查看到相关药店的路线图 和 导航。最开始在B负责地图的一系列创建,程序没有问题,然而当我不断在这两个页面之间进行切换的时候,问题来了:程序崩溃 原因是内存泄露。
解决的办法:A页面生成一个mapView,然后大家共用它,而不是每次点击单元格都创建一个地图。因为A页面和B页面切换速度过快,地图绘制是很耗时间的,地图还没有创建出来就退出,有时候就会导致内存泄露-->crash。
在A页面进行地图的创建 但不设置代理!
@property (nonatomic, strong) MAMapView *mapView;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
medicineShopModel *model = dataArray[indexPath.row];
MapViewController *map = [[MapViewController alloc]init];
//在点击单元格的时候将上面创建的mapView赋值给B页面的声明mapView。
map.mapView = self.mapView;
//将模型中的经纬度 分别赋值给map对象的属性
map.lt = model.x;
map.at = model.y;
[self.navigationController pushViewController:map animated:YES];
}
//初始化mapView
- (void)initMapView
{
self.mapView = [[MAMapView alloc] initWithFrame:self.view.bounds];
}
接下来对B页面进行修改
//首先声明如下属性
@property (nonatomic,assign) CGFloat at;
@property (nonatomic,assign) CGFloat lt;
@property (nonatomic,strong) MAMapView *mapView;
//为该页面的mapView设置frame,然后设置各种代理 遵循协议实现方法
self.mapView.frame = CGRectMake(0, 64, WIDTH, HEIGHT/2-50);
myLocationManager.delegate = self;
self.mapView.delegate = self;
search = [[AMapSearchAPI alloc]initWithSearchKey:@"2b5443e0ea031a20891d4bb8369a4a77" Delegate:self];
网友评论
2016-07-08 09:30:33.866 XQCProject[619:183070] [MAMapKit] INVALID_USER_SCODE
button 搜索内容
请求失败: Error Domain=AMapSearchErrorDomain Code=1008 "INVALID_USER_SCODE" UserInfo={NSLocalizedDescription=INVALID_USER_SCODE} 这是我在真机跑,点击搜索后,工程下面出现的所有描述
MAMapServices.sharedServices().apiKey = kGaoDeKey
AMapSearchServices.sharedServices().apiKey = kGaoDeKey 再请教下,这两个key是一样的么,我怎么找不到search的key,在申请key的时候,只有一个key,我顿时懵逼了