我正在使用Xcode 6.当我尝试使用CLLocationManager获取用户当前位置时,我遇到了一些问题。甚至我将NSLocationWhenInUseUsageDescription
和NSLocationAlwaysUsageDescription
添加到Info.plist文件中。并且还使用了[CLLocationManager requestWhenInUseAuthorization]
。然后我也得到控制台输出
2014-10-15 11:45:15.004 MapIOS8 [1916:57908]尝试在不提示位置授权的情况下启动MapKit位置更新。必须首先调用 - [CLLocationManager requestWhenInUseAuthorization]或 - [CLLocationManager requestAlwaysAuthorization]。
答案 0 :(得分:0)
您是否尝试按此顺序编写代码?
CLLocationManager *YourLocationManager = [[CLLocationManager alloc] init];
YourLocationManager.delegate = self;
[YourLocationManager requestWhenInUseAuthorization];
[YourLocationManager startUpdatingLocation];
yourMapView.delegate = self;
yourMapView.showsUserLocation = YES;
此外,要获取用户位置坐标,您可能必须实现此mapkit委托方法
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
NSLog(@"%f, %f", userLocation.coordinate.latitude, userLocation.coordinate.longitude);
[mapView selectAnnotation:userLocation animated:YES];
}
答案 1 :(得分:0)
如果您使用的是iOS模拟器,请尝试从“设置” - >重置位置设置。常规 - >与隐私>重置位置&隐私。然后致电:
[LocationManager requestAlwaysAuthorization];
首次执行时必须出现一个弹出窗口,以允许使用当前用户的位置。允许使用当前位置后启动LocationManager:
[LocationManager startUpdatingLocation];