iOS开发随笔——定位

前言

在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负值
        }
    }];
}

更加详细的信息在这里,我也是从这里借鉴的,这里写下是为了自己Mark

iOS 定位总结--roger_单

需要获得地址详细信息 在CLPlacemark *plmark中可以找到属性plmark.addressDictionary

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容