我正在創建一個簡單的UIMapView自定義註釋。剛升級到Yosemite和Xcode 6.1.1。我已經嘗試了一切,以獲取用戶位置在地圖上顯示,但由於某些原因,藍點不顯示在地圖上。我在UIMapView的檢查器中選擇了顯示用戶位置。當我在手機上運行時,最後列出的錯誤顯示在屏幕底部的日誌窗口中。感謝您的任何幫助。用戶位置將不會顯示在mapView
我.h文件中
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController <MKMapViewDelegate>
@property (strong, nonatomic) IBOutlet MKMapView *mapView;
我.m文件
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self.mapView.delegate self];
[self.mapView setShowsUserLocation:YES];
}
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
CLLocationCoordinate2D loc = [userLocation coordinate];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 500, 500);
[self.mapView setRegion:region animated:YES];
}
錯誤接收運行後 501:107687]嘗試啓動MapKit位置更新,而不提示進行位置信息授權。必須首先調用 - [CLLocationManager requestWhenInUseAuthorization]或 - [CLLocationManager requestAlwaysAuthorization]。
所以..該錯誤信息是很清楚的給我。您需要請求授權... – 2014-12-11 04:56:26
快速Google搜索揭示* DOZENS *示例https://www.google.com/search?q=CLLocationManager+requestWhenInUseAuthorization&oq=CLLocationManager+requestWhenInUseAuthorization&aqs=chrome..69i57j0l5.404j0j7&sourceid=chrome&es_sm= 119&ie = UTF-8 – 2014-12-11 04:57:16
特別是,您應該在ViewDidLoad中調用此* * BEFORE *調用setShowsUserLocation ...因此,將您的身份驗證包裝在BOOL方法中,然後只調用映射方法... – 2014-12-11 04:58:58