2016-09-06 2 views
0

у меня есть этот код в моем файле,MKMapView Mathod 'didUpdateUserLocation' не вызывая

@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 
+0

Вы добавили делегата? (CLLocationManagerDelegate) Пожалуйста, отправьте свой экземпляр класса. – Andrei

+0

А где объект 'MKMapView'? Где установлен его делегат? – Larme

+0

Добавлено все, о чем идет речь. @Larme – KAR

ответ

1

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

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

Использование setShowUserLocation со значением ДА после startUpdatingLocation

0

Брат Я попробовал ваш метод делегата code.The не называется.

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

[self.locationManager startUpdatingLocation]; 

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

1

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

For Objective - C: 

[locationManager startUpdatingLocation]; 

For Swift: 

locationManager.startUpdatingLocation() 
Смежные вопросы