ps:这是个人学习笔记,如果路过的大神可指教几句,茂茂不胜感激!
如果就地图定位而言,只需要设置三个步骤:(当然导入CLLocation框架头文件那是必须的):
1.创建CLLocationManager对象
2.成为CLLocationManager的代理
3.开始监听即可
——————以上对iOS8之前的系统有效—————
对于最新的iOS8及以后,Apple加强了隐私访问权限的控制,必须调用新的方法来获取用户的允许:
1.调用 [self.manager requestAlwaysAuthorization]; 申请用户授权
2.需要在info.plist文件中增加:
NSLocationWhenInUseUsageDescription BOOL YES NSLocationAlwaysUsageDescription string “提示描述”
ps:“提示描述”会出现在请求用户授权时候的界面上
通过以上设置之后,就可以正常使用地图定位了,可以在代理方法:(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray*)locations得到最新的位置信息
=====================主要代码=======================
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
[self.manager requestAlwaysAuthorization]; //调用了这句,就会弹出允许框了.
}
self.manager.delegate = self;
//设置多久获取一次位置信息,如果不设置,默认一直获取信息,这一点非常重要,会默认一直获取地理位置信息,耗电会非常快
self.manager.distanceFilter = 100; //控制更新位置频率,单位“米”
/**
*
kCLLocationAccuracyBestForNavigation//最佳导航
kCLLocationAccuracyBest;//最精准
kCLLocationAccuracyNearestTenMeters //十米
kCLLocationAccuracyHundredMeters; //百米
kCLLocationAccuracyKilometer; //千米
kCLLocationAccuracyThreeKilometers; //3公里
*/
//控制定位精度越高 耗电量越大。
self.manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[self.manager startUpdatingLocation];