- (CLLocationManager *)locationManager { if (!_locationManager) { _locationManager = [[CLLocationManager alloc] init]; _locationManager.delegate = self; _locationManager.desiredAccuracy = kCLLocationAccuracyBest; _locationManager.distanceFilter = 10; [_locationManager requestAlwaysAuthorization];//添加这句 } return _locationManager; } #pragma mark - CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { debugMethod(); CLLocation *currentLocation = [locations lastObject]; CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) { CLPlacemark *placemark = [placemarks firstObject]; }]; //关闭定位服务 [self.locationManager stopUpdatingLocation]; } #pragma mark - IBAction //定位按钮被点中 - (IBAction)locationBtnDidClick:(id)sender { debugMethod(); if([CLLocationManager locationServicesEnabled]) { [self.locationManager startUpdatingLocation]; } else { [self.tableView makeToast:@"请打开定位服务" duration:1.0 position:@"center"]; } } info.plist中加入两行: NSLocationAlwaysUsageDescription : 点击"允许"以开启云买手定位服务 NSLocationWhenInUseDescription : 点击"允许"以开启云买手定位服务