我想在坐标中收到用户当前位置,我输入了以下代码:
-(void)update{
locationManager = [[CLLocationManager alloc] init];
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
mapView.showsUserLocation = YES;
[locationManager startUpdatingLocation];
}
在iOS模拟器上,此代码崩溃,在我的设备上它没有或有时它崩溃整个应用程序....你能帮我解决发生的事情吗?
答案 0 :(得分:1)
看起来您可能没有实施CLLocationManagerDelegate方法。
特别是-locationManager:didUpdateLocations:
(来自iOS 6)或之前iOS版本中的-locationManager:didUpdateToLocation:fromLocation:
。
也许(再次你的问题太模糊了)你只想在地图视图上显示蓝点。在这种情况下,您不需要处理核心位置管理器。查看this post了解详情。
答案 1 :(得分:1)
首先,您无法在模拟器中获取当前位置。并尝试使用此代码获取当前位置的坐标。
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
if ([CLLocationManager locationServicesEnabled])
{
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
}
location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];;
MKCoordinateRegion region;
region.center=coordinate;
MKCoordinateSpan span;
span.latitudeDelta=10.015;
span.longitudeDelta=10.015;
region.span=span;
[mapView setRegion:region];
NSString *str=[[NSString alloc] initWithFormat:@" latitude:%f longitude:%f",coordinate.latitude,coordinate.longitude];
NSLog(@"%@",str);