【发布时间】:2016-06-30 03:09:21
【问题描述】:
在一个简单的项目中,我实例化了一个 Core Location Manager:
- (void)viewDidLoad {
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.desiredAccuracy =
kCLDistanceFilterNone;
self.locationManager.delegate = self;
if([CLLocationManager locationServicesEnabled]) {
// Location Services Are Enabled
switch([CLLocationManager authorizationStatus]) {
case kCLAuthorizationStatusNotDetermined:
NSLog(@"1");
[self.locationManager requestWhenInUseAuthorization];
NSLog(@"requested auth");
break;
case kCLAuthorizationStatusRestricted:
NSLog(@"2");
break;
case kCLAuthorizationStatusDenied:
NSLog(@"3");
break;
case kCLAuthorizationStatusAuthorized:
NSLog(@"4");
break;
}
} else {
// Location Services Disabled
}
[self.locationManager startUpdatingLocation];
}
我在 info.plist 中也有相应的键:
基于此代码的日志输出是:
[233:5927] 1
[233:5927] requested auth
但我没有收到授权请求...
没有错误,也没有位置更新(如果我实现了委托回调)
【问题讨论】:
-
好的,所以第一个返回YES,第二个返回NO。如何更改第二个?
-
抱歉,您必须更具体一些。我这样检索它:[CLLocationManager authorizationStatus]
-
因此,状态为 kCLAuthorizationStatusNotDetermined。如何强制用户确定它?我多次尝试卸载并重新安装该应用程序...
-
请edit您的帖子包含您对问题的任何其他信息。避免在 cmets 中添加它,因为它们更难阅读并且更容易删除。帖子的编辑按钮就在帖子标签的下方。
-
只是一个小插曲:您的
locationManager同时被释放了吗?属性是如何定义的?
标签: ios objective-c ios9 core-location