#import <CoreLocation/CoreLocation.h> 使用到的頭文件 要引入CoreLocation這個包<CLLocationManagerDelegate> 使用的代理名稱//1.使用定位服務(wù) //設(shè)置app有訪問定位服務(wù)的權(quán)限 //在使用應(yīng)用期間 / 始終(app在后臺) //info.plist文件添加以下兩條(或者其中一條): //NSLocationWhenInUseUsageDescription 在使用應(yīng)用期間 //NSLocationAlwaysUsageDescription 始終 //2.LocationManager 對象管理相關(guān)的定位服務(wù) _manager = [[CLLocationManager alloc] init]; //manager判斷: 手機是否開啟定位 / app是否有訪問定位的權(quán)限 //[CLLocationManager locationServicesEnabled]; //手機是否開啟定位 //[CLLocationManager authorizationStatus]; //app訪問定位的權(quán)限的狀態(tài) if (![CLLocationManager locationServicesEnabled] || [CLLocationManager authorizationStatus] != kCLAuthorizationStatusAuthorizedWhenInUse) { [_manager requestWhenInUseAuthorization]; //向用戶請求訪問定位服務(wù)的權(quán)限 } _manager.delegate = self; _manager.desiredAccuracy = kCLLocationAccuracyBest; _manager.distanceFilter = 1.0f; [_manager startUpdatingLocation];//定位代理經(jīng)緯度回調(diào)-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { [_manager stopUpdatingLocation]; CLGeocoder * geoCoder = [[CLGeocoder alloc] init]; [geoCoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) { for (CLPlacemark * placemark in placemarks) { NSDictionary *test = [placemark addressDictionary]; // Country(國家) State(城市) SubLocality(區(qū)) Name全稱 NSLog(@"%@", [test objectForKey:@"Name"]); } }];}
新聞熱點
疑難解答