前言
在iOS开发过程中经常会使用到用户位置信息,iOS系统封装了定位所要的类库
<CoreLocation/CoreLocation.h>
使用方法:
//首先需要设置代理
@interface ViewController ()<CLLocationManagerDelegate>
//其次需要声明变量
@property (nonatomic, strong) CLLocationManager *manager;
//然后初始化变量manager
- (void)getLocation{
_manager = [[CLLocationManager alloc]init];
[_manager requestAlwaysAuthorization];
_manager.delegate = self;
[_manager startUpdatingLocation];
}
//最后重写代理方法
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations{
CLLocation *currLocation=[locations lastObject];
NSLog(@"la---%f, lo---%f",currLocation.coordinate.latitude,currLocation.coordinate.longitude);
// 使用CLGeocoder的做法,其实是因为ios5开始,iphone推荐的做法。而MKReverseGeocoder在ios5之后,就不再推荐使用了,因为这个类需要实现两个委托方法。而使用CLGeocodre,则可以使用直接的方法。
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:currLocation completionHandler:^(NSArray* placemarks,NSError *error) {
if (placemarks.count >0 ) {
// 自动定位获取城市等信息
CLPlacemark * plmark = [placemarks objectAtIndex:0];
NSLog(@"%@", plmark.name); //显示所有地址
// _label.text = plmark.name; //给label负值
}
}];
}