У меня есть этот код в моем файле,

@synthesize myLocation;

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    self.locationManager = [[CLLocationManager alloc] init];
    myLocation.delegate = self;
    [self.locationManager requestWhenInUseAuthorization];
    [myLocation setShowsUserLocation: YES];

}

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 800, 800);
    [self.myLocation setRegion:[self.myLocation regionThatFits:region] animated:YES];
}

Но метод didUpdateUserLocation не вызывается.

Я уже добавил необходимые фреймворки в приложение.

Я все добавил в файл info.plist. Но все равно не звонит.

Это мой файл .h,

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

@interface MapView : UIViewController <MKMapViewDelegate, CLLocationManagerDelegate>
@property (weak, nonatomic) IBOutlet MKMapView *myLocation;
@property(nonatomic, retain) CLLocationManager *locationManager;
@end
1
KAR 6 Сен 2016 в 16:34

3 ответа

Лучший ответ

Я просто решил проблему,

locationManager = [[CLLocationManager alloc] init];
    myLocation.delegate = self;
    [locationManager requestWhenInUseAuthorization];
    [locationManager startUpdatingLocation];
    [myLocation setShowsUserLocation: YES];

Используйте setShowUserLocation со значением YES после startUpdatingLocation .

2
KAR 7 Сен 2016 в 07:52

Вы еще не вызвали метод обновления местоположения, поэтому метод делегата не вызывается. Вам нужно вызвать метод для startUpdatingLocation.

For Objective - C:

[locationManager startUpdatingLocation];

For Swift:

locationManager.startUpdatingLocation()
1
Parth Adroja 28 Окт 2016 в 10:29

Брат, я пробовал ваш код. Метод делегата не вызывается.

Затем я обнаружил решение, которое вы не добавили в строку ниже в конце метода viewDidLoad. Пожалуйста, добавьте

[self.locationManager startUpdatingLocation];

После того как я добавил код строки в метод viewDidLoad, метод делегата был успешно вызван.

0
user3182143 6 Сен 2016 в 14:36