鑒于之前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//用戶忽略定位