我把它放在applicationDidFinishLaunchingWithOptions
和applicationWillEnterForeground
中的AppDelegate.m
中:
[MAMapServices sharedServices].apiKey = kMapKey;
_mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
self.mapView.delegate = self;
self.mapView.showsUserLocation = YES;
在地图的委托方法中,我这样做:
-(void)mapView:(MAMapView *)mapView didUpdateUserLocation:(MAUserLocation *)userLocation updatingLocation:(BOOL)updatingLocation
{
if (self.mapView) {
self.mapView = nil;
}
}
在applicationDidFinishLaunchingWithOptions
中可行,但在applicationWillEnterForeground
中_mapView的alloc
无效。在nil
和alloc
之后,它仍然是init
。为什么? (顺便说一句,_mapView
属性为strong
,而不是weak
。)
答案 0 :(得分:0)
您正在使用实例变量_mapView
来分配分配。
尝试使用
self.mapView = [[MAMapView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
该财产是否很弱?