前言
在iOS開發(fā)過程中經(jīng)常會使用到用戶位置信息,iOS系統(tǒng)封裝了定位所要的類庫
<CoreLocation/CoreLocation.h>
使用方法:
//首先需要設(shè)置代理
@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的做法,其實(shí)是因?yàn)閕os5開始,iphone推薦的做法。而MKReverseGeocoder在ios5之后,就不再推薦使用了,因?yàn)檫@個(gè)類需要實(shí)現(xiàn)兩個(gè)委托方法。而使用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負(fù)值
}
}];
}