鉴于之前markdown使用不熟练,现慢慢修改以前文章格式,更易读。
1.声明全局的定位管理者和反编码
@property(nonatomic,strong)CLLocationManager*locationManager;
@property(nonatomic,strong)CLGeocoder*geocoder;
2.初始化定位管理者绑定代理同时判断系统版本号使用不同方法
self.locationManager.delegate=self;
if([[UIDevicecurrentDevice].systemVersiondoubleValue] >=8.0)//iOS8
{
//主动要求用户对我们的程序授权授权状态改变就会通知代理
[self.locationManagerrequestAlwaysAuthorization];//请求前台和后台定位权限(必须是iOS8才能用)
}
else
{
//ios7
}
//开始监听(开始获取位置)
[self.locationManagerstartUpdatingLocation];
3.绑定代理允许定位的情况下通过代理方法对定位信息进行处理
- (void)locationManager:(CLLocationManager*)manager didUpdateLocations:(NSArray*)locations
{
CLLocation*location = [locationslastObject];
[self.geocoderreverseGeocodeLocation:locationcompletionHandler:^(NSArray*placemarks,NSError*error) {
//获取当前定位信息,进行定位处理
}
4.[CLLocationManagerauthorizationStatus]定位状态,可以根据不同状态方便控制处理举例常用的状态
kCLAuthorizationStatusDenied //用户禁止使用定位
kCLAuthorizationStatusNotDetermined//用户忽略定位