Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed

环境:XCODE6.4 + iPhone / iOS8

一 错误:使用CoreLocation获取地理位置信息,报错

Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"

解决方法:

1.确定模拟器(手机)已经联网并且允许程序获取地理位置

2.模拟器位置已设置(可以设置自定义)

2.重置地理位置服务或者网络服务

PS:如果是模拟器就果断直接重置模拟器吧  IOS Simulator - Reset Content and Settings..



二 ios8.0下的定位服务需要申请授权.具体代码如下:

if ([CLLocationManager locationServicesEnabled]) {

self.locationManager = [[CLLocationManager alloc] init];

_locationManager.delegate = self;

_locationManager.desiredAccuracy = kCLLocationAccuracyBest; //控制定位精度,越高耗电量越大。

_locationManager.distanceFilter = 100; //控制定位服务更新频率。单位是“米”

[_locationManager startUpdatingLocation];

//在ios 8.0下要授权

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)

[_locationManager requestWhenInUseAuthorization];  //调用了这句,就会弹出允许框了.

}

注意:

在Info.plist文件还要加上

NSLocationWhenInUseUsageDescription   描述、、为什么使用定位

NSLocationAlwaysUsageDescription         string “提示描述”

Error Domain=kCLErrorDomain Code=0

#pragma mark - CLLocationManagerDelegate

//定位到用户位置时调用定位比较频繁

- (void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray*)locations{

CLLocation*currLocation = [locationslastObject];

NSLog(@"经度=%f纬度=%f高度=%f", currLocation.coordinate.latitude, currLocation.coordinate.longitude, currLocation.altitude);

NSLog(@"locationManager---%ld",locations.count);

}

- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error

{

if([errorcode] ==kCLErrorDenied)

{

//访问被拒绝

NSLog(@"访问被拒绝");

}

if([errorcode] ==kCLErrorLocationUnknown) {

//无法获取位置信息

NSLog(@"无法获取位置信息---%@",error);

}

}

你可能感兴趣的:(Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed)