Xcode - CoreLocation 未显示蓝点

Xcode - CoreLocation not showing blue dot

出于某种原因,当我启动我的应用程序时,它会正确执行所有操作,除了在地图上将用户显示为蓝点。它放大到用户当前位置,只是没有点。任何帮助将不胜感激。

我在下面添加了代码和屏幕截图以获取资源。

FrontViewController.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>

@interface FrontViewController : UIViewController <CLLocationManagerDelegate>

{
   CLLocationManager *objLocationManager;
   double latitude_UserLocation, longitude_UserLocation;
}

   @property (weak, nonatomic) IBOutlet MKMapView *objMapView;

@end

FrontViewController.m

#import "FrontViewController.h"
#import "SWRevealViewController.h"

@interface FrontViewController()

// Private Methods:
- (IBAction)pushExample:(id)sender;

@end

@implementation FrontViewController

@synthesize objMapView;

- (void)viewDidLoad
{
   [super viewDidLoad];
   [self loadUserLocation];

   //self.title = NSLocalizedString(@"Front View", nil);

   SWRevealViewController *revealController = [self revealViewController];

   [revealController panGestureRecognizer];
   [revealController tapGestureRecognizer];

   [self.navigationController.navigationBar addGestureRecognizer:revealController.panGestureRecognizer];

UIBarButtonItem *revealButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reveal-icon.png"]
    style:UIBarButtonItemStyleBordered target:revealController action:@selector(revealToggle:)];

  self.navigationItem.leftBarButtonItem = revealButtonItem;

    UIImageView* imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"BSEEK-Logo.png"]];
    imageView.contentMode = UIViewContentModeScaleAspectFit;

    UIView* titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 84, 84)];
    imageView.frame = titleView.bounds;
    [titleView addSubview:imageView];

    self.navigationItem.titleView = titleView;
}


- (IBAction)pushExample:(id)sender
{
     UIViewController *stubController = [[UIViewController alloc] init];
     stubController.view.backgroundColor = [UIColor whiteColor];
     [self.navigationController pushViewController:stubController animated:YES];
}

- (void) loadUserLocation
{
    objLocationManager = [[CLLocationManager alloc] init];
    objLocationManager.delegate = self;
    objLocationManager.distanceFilter = kCLDistanceFilterNone;
    objLocationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
      if ([objLocationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
        [objLocationManager requestWhenInUseAuthorization];
      }
      [objLocationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager
     didUpdateLocations:(NSArray *)locations __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_6_0)
{
    CLLocation *newLocation = [locations objectAtIndex:0];
    latitude_UserLocation = newLocation.coordinate.latitude;
    longitude_UserLocation = newLocation.coordinate.longitude;
    [objLocationManager stopUpdatingLocation];
    [self loadMapView];
}

- (void)locationManager:(CLLocationManager *)manager
       didFailWithError:(NSError *)error
{
    [objLocationManager stopUpdatingLocation];
}

- (void) loadMapView
{
    CLLocationCoordinate2D objCoor2D = {.latitude =  latitude_UserLocation, .longitude =  longitude_UserLocation};
    MKCoordinateSpan objCoorSpan = {.latitudeDelta =  0.2, .longitudeDelta =  0.2};
    MKCoordinateRegion objMapRegion = {objCoor2D, objCoorSpan};
    [objMapView setRegion:objMapRegion];
}

@end

项目文件

MKMapView 有一个 showsUserLocation 属性。看来你需要打开它。

您可以在代码中设置 属性,但如果您的地图视图是在故事板场景中创建的,您只需在故事板编辑器中选中 用户位置 框:

此外:确保您的 Info.plist 中有适当的密钥以允许该应用访问用户的位置,并且您已授予该应用适当的权限设备上的权限。 (您可以在设置->隐私->位置服务中查看。)如果该应用没有获取位置的权限,即使启用showsUserLocation,地图也不会显示它。