目前我有一个使用用户当前地理位置的应用程序。
每当我在我的设备或模拟器上运行应用程序时,应用程序就会打开并立即将我的位置服务从“已授权”变为“未确定”。出于某种原因,这只发生在我和我的其他开发人员身上。
我不确定这是Xcode的问题,我昨晚更新到6.01,或者我的代码中的内容。
我已经尝试重置应用程序的位置服务,但是当我返回应用程序时,它会立即将其更改为“未确定”。
知道造成这个问题的原因是什么吗?有没有人遇到类似的问题?
以下是我的locationManager的代码片段。
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
NSLog(@"did change status");
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
NSLog(@"not determined");
} else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized) {
NSLog(@"Authorized");
[[NSNotificationCenter defaultCenter] postNotificationName:@"Location Services Authorized" object:self];
} else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusRestricted){
NSLog(@"restricted");
[[NSNotificationCenter defaultCenter] postNotificationName:@"Location Services Restricted" object:self];
} else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
NSLog(@"denied");
[[NSNotificationCenter defaultCenter] postNotificationName:@"Location Services Denied" object:self];
} else {
NSLog(@"can not");
答案 0 :(得分:1)
我在您的代码中没有看到您在呼叫requestWhenInUseAuthorization
的位置。在位置服务工作之前,iOS8中要求用户进行授权。
每次启动位置服务时,只需在位置管理器上调用它,以确保您拥有权限(如果您已获得权限或已被拒绝,则无效)。
答案 1 :(得分:0)
可能是应用程序无法访问位置服务,它应该在设置屏幕关闭,你能检查一下吗? 继续设置>隐私>位置服务> "您的申请" >上强>
答案 2 :(得分:0)
我解决了这个问题!
事实证明,Apple对其核心位置管理器进行了一些更改。
您可以在此处详细了解:
http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/
感谢您的帮助。