почему методы делегирования для CurrentLotion (CLLocationManager) не вызываются в iOS4.0? - PullRequest
3 голосов
/ 16 августа 2010

Я использую iPhone SDK 4.0. Я использовал приведенный ниже код для определения текущего местоположения, но его методы делегата не называются автоматически ... Мой код указан ниже:

in .hfile

У меня есть импорт

CoreLocation/CoreLocation.h

и делегат

CLLocationManagerDelegate

CLLocationManager *locationManager;

in .mfile

    locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters; // 100 m
[locationManager startUpdatingLocation];

но я не могу получить текущее местоположение для этого ...... Мой метод делегата, который не называется:

- (void)locationManager:(CLLocationManager *)manager
    didUpdateToLocation:(CLLocation *)newLocation
           fromLocation:(CLLocation *)oldLocation
{

}

Ответы [ 2 ]

0 голосов
/ 09 декабря 2013

Я столкнулся с той же проблемой. Весь код выглядит нормально, но метод делегата не был вызван.

Я полностью закрыл симулятор. При повторном запуске приложения был вызван метод делегата.

0 голосов
/ 29 мая 2011

Ваш код выглядит правильно для меня. Вы также пытались запустить этот код на реальном iPhone? Симулятор не всегда отвечает на обновления менеджера местоположения. Есть также еще один важный метод делегата, который вы должны добавить в свой файл .m:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

Этот будет вызван в случае, если что-то пойдет не так. Например, менеджер местоположения не смог локализовать ваш iPhone.

...