参考:http://www.2cto.com/kf/201410/342392.html
http://blog.csdn.net/yongyinmg/article/details/39521523
http://blog.devzeng.com/blog/ios8-corelocation-framework.html
iOS8的定位问题,执行操作之后,不会调用到定位之后的delegate方法中,然后我查看了一下手机上对应用的定位权限界面,发现我的应用的访问用户的地理位置的权限是空的,之后查了相关信息,得到以下解决方案:
1. Appdelegate中:
//h CLLocationManager *locationManager; //m
[UIApplication sharedApplication].idleTimerDisabled = TRUE;
if([CLLocationManager locationServicesEnabled])//检查定位服务是否可用 { if(!locationManager) {
locationManager = [[CLLocationManager alloc] init];
}
[locationManager requestAlwaysAuthorization]; //NSLocationAlwaysUsageDescription [locationManager requestWhenInUseAuthorization]; //NSLocationWhenInUseDescription locationManager.delegate = self;
locationManager.distanceFilter = 0.5; locationManager.desiredAccuracy = kCLLocationAccuracyBest;
} [locationManager startUpdatingLocation];
2. 在 info.plist里加入:
在Info.plist中加入两个缺省没有的字段
- NSLocationAlwaysUsageDescription 允许在前台获取GPS的描述
- NSLocationWhenInUseUsageDescription 允许在后台获取GPS的描述
这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语。
Application requires IPhone environment yes
时间: 2024-10-10 16:51:28