MKMapViewDelegate mapView: didUpdateUserLocation: метод не вызывается в iOS5 - PullRequest
1 голос
/ 14 октября 2011

MKMapViewDelegate mapView: didUpdateUserLocation: метод не вызывается при запуске на симуляторе 5.0, даже если все разрешения местоположения указаны в настройках устройства.

С 4.3 он работает нормально.

Любойидеи?

Ответы [ 3 ]

0 голосов
/ 26 октября 2011

Проверьте «setUserTrackingMode: animated:» и «userTrackingMode». Оба являются новыми в iOS5. У меня была похожая проблема, и я исправил ее, установив MKUserTrackingModeFollow в функции setUserTrackingMode. Я думаю, что режим отслеживания по умолчанию - MKUserTrackingModeNone и вызывает mapView: didUpdateUserLocation только один раз.

Если ваша проблема в том, что mapView: didUpdateUserLocation никогда не вызывается, посмотрите на параметры в новом xcode, прямо под консольными выходами есть значок, такой как значок gps в ipad, который позволяет вам смоделировать местоположение ,

0 голосов
/ 13 февраля 2013

Я знаю, что это старая тема. Я все равно отвечу, это может помочь и другим.

У меня была похожая проблема с iOS 6. Я смог решить ее, установив для делегата mapview значение self.

Как это:

[mapView setDelegate:self];

Убедитесь, что ваш ViewController.h имеет MKMapViewDelegate в соответствии с:

@interface ViewController : UIViewController <CLLocationManagerDelegate, MKMapViewDelegate>
0 голосов
/ 16 октября 2011

Я получил то же самое после рефакторинга в ARC.

Сначала у меня был следующий код в viewDidLoad;

CLLocationManager *lm =[[CLLocationManager alloc] init];
lm.delegate = self;
lm.desiredAccuracy = kCLLocationAccuracyBest;
[lm startUpdatingLocation];

Я сделал следующее в de headerfile

@interface ViewController : UIViewController <CLLocationManagerDelegate>
{
CLLocationManager *locationManager;
}

@property(nonatomic, strong)CLLocationManager *locationManager;

А

@synthesize locationManager;

Код меняю в viewDidLoad

locationManager =[[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
...