最近在iOS8.2 Xcode6.2环境下做地图导航,发现下面的错误,经查资料,终于找到解决方案
第一步:在 info.plist里加入:
NSLocationWhenInUseDescription,允许在前台获取GPS的描述
NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述
第二步:
#import "ViewController.h" #import <MapKit/MapKit.h> @interface ViewController () <MKMapViewDelegate, CLLocationManagerDelegate> // 显示地图的view @property (weak, nonatomic) IBOutlet MKMapView *mapView; @property (nonatomic, strong) CLLocationManager *locationManager; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 0.判断是否iOS8 self.locationManager = [[CLLocationManager alloc] init]; if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { [self.locationManager requestAlwaysAuthorization]; // 永久授权 [self.locationManager requestWhenInUseAuthorization]; //使用中授权 } [self.locationManager startUpdatingLocation]; // 1.设置地图类型 self.mapView.mapType = MKMapTypeHybrid; // 2.设置代理 self.mapView.delegate = self; // 3.设置跟踪用户位置 self.mapView.userTrackingMode = MKUserTrackingModeFollow; } @end
至此,初步的地图定位已经实现,而且不需要我们自己设置用户位置居中。